在矢量中打印数据

时间:2013-05-22 08:45:20

标签: c++ vector

我有一段时间没做过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;
}

2 个答案:

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