我有一个私人财产的课程:
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;
//.............
};
我可以使用此代码访问strut:
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);
//............
}
但是,现在我如何改变编译器崩溃。
当我想通过索引访问列表时,我使用以下代码:
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:在成员函数'void Ranking :: sort_ranking(int)'中: Ranking.cpp:52:21:error:数组下标的无效类型'int [int]' Ranking.cpp:52:47:错误:数组下标的无效类型'int [int]' Ranking.cpp:55:26:error:数组下标的无效类型'int [int]' Ranking.cpp:55:53:错误:数组下标的类型'int [int]'无效 Ranking.cpp:56:22:错误:数组下标的类型'int [int]'无效 Ranking.cpp:56:49:错误:数组下标的无效类型'int [int]'
vector
list <pair <int,int> >
?list
vector
非常感谢
答案 0 :(得分:3)
对于容器模板,您需要一种数据类型。
因此typedef
使用l_repr
关键字:
typedef list <pair <int,int> > l_repr;
// ^^^
vector <l_repr> rank;
也可能存在其他错误。
答案 1 :(得分:0)
应该可以创建pair int,int
列表的向量std::vector<std::list<std::pair<int, int>>> v;
但是我不确定你会用它做什么,因为它非常混乱。