-1

しばらく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;
}
4

2 に答える 2

0

次のリンク http://www.cplusplus.com/reference/vector/vector/operator[]/ からわかるように、operator[] はアクセス要素であり、要素を挿入することはできません。オブジェクトを挿入するには、 Assign 、 push_back 、および insert を使用します

于 2013-05-22T09:44:26.803 に答える