为什么下面的代码不起作用?它说“向量下标超出范围”。另外,有没有办法使用索引从列表中获取元素?
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int main()
{
vector<list<int> > adjList;
adjList[0].push_back(2);
cout << adjList[0].front();
}
答案 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();