我有一段时间没做过C ++。
我试图获取矢量矢量来打印数据。我收到以下错误:
Segmentation fault (core dumped)
我正在使用在线编译器来运行代码。
#include <iostream> // std::cout
#include <algorithm> // std::for_each
#include <vector> // std::vector
void myfunctiontwo (int i) { // function:
std::cout << ' ' << i;
}
void myfunction (std::vector<int> myvector) { // function:
for_each (myvector.begin(), myvector.end(), myfunctiontwo);
}
int main () {
// create a vector of vectors.
std::vector< std::vector<int> > myvector;
// add some data
myvector[0].push_back(10);
myvector[1].push_back(20);
myvector[2].push_back(30);
std::cout << "myvector contains:";
for_each (myvector.begin(), myvector.end(), myfunction);
std::cout << '\n';
return 0;
}
答案 0 :(得分:3)
你的问题是推迟:
myvector[0].push_back(10);
myvector[1].push_back(20);
myvector[2].push_back(30);
向量myvector[0]
,myvector[1]
和myvector[2]
尚不存在。如果您希望myvector
以3个向量开头,您可以像这样创建它:
std::vector< std::vector<int> > myvector(3);
答案 1 :(得分:0)
从以下链接http://www.cplusplus.com/reference/vector/vector/operator[]/可以看到,operator []是Access元素 你不能用它插入元素的方式。插入对象使用Assign,push_back和insert