• 締切済み

STLベクトルコンテナ

vectorの1次元目の要素と1次元目のサイズを常に持ち回す方法しか思いつきません。 int dim1size = 2; int dim1ite = 0; vector<vector<char *> > vec; vec.resize(dim1size); vec.at(dim1ite).reserve(2); どこかの関数で vec.at(dim1ite).push_back("浅倉"); vec.at(dim1ite).push_back("東京"); dim1ite++; どこかの関数で vec.at(dim1ite).push_back("稲垣"); vec.at(dim1ite).push_back("大阪"); dim1ite++; どこかの関数で vec.at(dim1ite).push_back("内山"); vec.at(dim1ite).push_back("名古屋"); dim1ite++; このようなソースです。 dim1sizeとdim1iteを持ち回さなくてもvecだけで1次元目のサイズを気にすることなくpush_backを実行するよい方法はありませんか? 上記ソースではpush_back("内山");の前にresizeが必要です。これを自動でやってほしいのです。

みんなの回答

  • valvelde
  • ベストアンサー率35% (46/129)
回答No.2

1次元目のメモリの確保にresizeではなくpush_backを使用する。

回答No.1

なにをやりたいのかよくわからんですが、 typedef pair<string,string> item; vector<item> vec; vec.push_back(item("内山","名古屋")); ... ではダメですか?

関連するQ&A