私は今、vector
と働いています。私は助けが必要な面白い状況があります。C++ベクトル内のベクトルの動的割り当て?
私は次のように定義ベクトルのベクトル、持っている:私は0(ゼロ)を得るとき、私はint型の新しいベクトルを作成したいcin >> helpVar;
と毎回を使用して、標準入力から数字をロードしています
vector< vector<int> > list;
を、どのこの「メインコンテナ」list
に入れられます。
もちろん、私は分かりません。数字が何回表示されるかは、ユーザーによって異なります。だから私はまた、プログラムがどのくらいのベクトルを追加するかわからない。
しかし、私は正確にそれを行う方法はわかりません。
if(helpVar == 0)
{
list.push_back(new vector<int>);
}
をしかし、この構造は、C++では動作しません:私はC#や他のガベージコレクションのような言語を使用した場合、私はおそらくちょうど書くでしょう。
私の質問は、この状況をどのように処理して機能させるべきかということです。それとも、私はそれについて間違っていると思いますか?それは別の方法で行われるべきですか?
お返事ありがとうございます。
ベクトルのポインタがあればベクトルがあれば、それは正常に機能します。それは単に慣用的ではありません。 – delnan
これを行うときにメモリリークの危険があることに注意してください。参照してください:http://stackoverflow.com/questions/307082/cleaning-up-an-stl-list-vector-of-pointers – Raedwald
@delnanこれは実際には悪いアドバイスです。できればいつでも新しいものを避けてはいけません。そうすることはしばしば高価になる可能性があるためです。それぞれの言語構造には利点がありますので、それらを賢明に使い、 "常に"ルールを忘れてください。 –