为什么不能将元素插入数组中的列表中?

时间:2019-07-16 15:45:22

标签: c++ std stdvector

为什么下面的代码不起作用?它说“向量下标超出范围”。另外,有没有办法使用索引从列表中获取元素?

#include <iostream>
#include <vector>
#include <list>
using namespace std;
int main()
{
    vector<list<int> > adjList;
    adjList[0].push_back(2);
    cout << adjList[0].front();
}

1 个答案:

答案 0 :(得分:3)

adjList[0]std::list中的第一个adjList。您有一个空的列表向量(vector<list<int> > adjList;),这意味着尝试访问第一个元素会导致访问超出范围。

首先,您应该在向量中添加一个列表:

vector<list<int> > adjList;
adjList.emplace_back(); // adds an empty list
adjList[0].push_back(2);
cout << adjList[0].front();