- 締切済み
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が必要です。これを自動でやってほしいのです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- valvelde
- ベストアンサー率35% (46/129)
回答No.2
1次元目のメモリの確保にresizeではなくpush_backを使用する。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
なにをやりたいのかよくわからんですが、 typedef pair<string,string> item; vector<item> vec; vec.push_back(item("内山","名古屋")); ... ではダメですか?