列表<pair <int,int>&gt; </pair <int,int>的向量中的数组下标的无效类型'int [int]'

时间:2014-05-17 01:27:59

标签: c++ list vector

我有一个私人财产的课程:

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

非常感谢

2 个答案:

答案 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;

但是我不确定你会用它做什么,因为它非常混乱。