2014-05-17 678 views
0

我与私有属性的类:无效类型“INT [INT]”的数组下标<对<int,int>>

class Ranking { 
private: 
    struct empar { 
     int id_org; 
     list <pair <int,int> > l_repr; 
    }; 

    vector <empar> rank; 
}; 

现在,我已经改变了这种类,因为整数id_org没有按没用。

class Ranking { 
private:  
list <pair <int,int> > l_repr; 
vector <l_repr> rank; 

//............. 
}; 

我可以访问,使用此代码支柱:

void Ranking::sort_ranking(int id_1, int id_2, int id_3) 
     list <pair <int,int> >:: iterator it = rank[id_1].l_repr.end(); 
      pair<int,int> rep; 
     rep.first = id_1+1; 
     rep.second = id_3; 
     rank[id_pad].l_repr.insert(it, rep); 
     //............ 
} 

但是,我现在该怎么改变编译器崩溃时

宣言私人atributes类。

当我想访问列表througt我用这个代码指数:

void Ranking::sort_ranking(int id_1, int id_2, int id_3) 
{ 
list <pair <int, int> > l1= rank[id_1]; 
list <pair <int,int> >:: iterator it = l1.end(); 

// ... 
} 

编译器给我这个消息,我不知道这意味着 `

Ranking.cpp: In member function ‘void Ranking::sort_ranking(int)’: Ranking.cpp:52:21: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:52:47: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:55:26: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:55:53: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:56:22: error: invalid types ‘int[int]’ for array subscript Ranking.cpp:56:49: error: invalid types ‘int[int]’ for array subscript

  • 你想要是否有可能创建vectorlist <pair <int,int> >
  • 如何从vector访问list

非常感谢

+4

您的问题将受益于[最小,完整,可验证示例](http://stackoverflow.com/help/mcve)。请创建一个,这样我们可以更好地帮助你。你甚至可以在创建时自己找到答案。 – chris

+0

感谢您的澄清,现在我重新编辑帖子。对不起 – Christian

+0

哪一行是56行? – sepp2k

回答

3

对于容器模板,你需要的数据类型。

所以使用typedef关键字为l_repr

typedef list <pair <int,int> > l_repr; 
// ^^^ 
vector <l_repr> rank; 

可能有其他错误(S)了。

+0

谢谢POW,这是一个很好的解决方案!我知道这是一个愚蠢的错误,但我浪费了很多时间去思考问题出在哪里。 – Christian

0

应该可以创造对INT的列表的载体,诠释

std::vector<std::list<std::pair<int, int>>> v; 

但我不知道你会用什么,对,因为它是相当混乱。

+0

感谢您的回答,但我在程序标题中声明了一个名称空间;) – Christian

相关问题