vector
ベクトルを定義する必要のあるコードがあります。ループ広告でそれらを使用し、毎回データを入力します。スニペットは次のようになります。
vector < vector<T> > buckets;
for ( i = 0 -> N) {
buckets.clear();
....
}
私の質問は、で.clear()
操作を実行した後でもbucket
、次の反復で古い値が存在することを確認しますが、これは通常ですか?
前もって感謝します!
vector
ベクトルを定義する必要のあるコードがあります。ループ広告でそれらを使用し、毎回データを入力します。スニペットは次のようになります。
vector < vector<T> > buckets;
for ( i = 0 -> N) {
buckets.clear();
....
}
私の質問は、で.clear()
操作を実行した後でもbucket
、次の反復で古い値が存在することを確認しますが、これは通常ですか?
前もって感謝します!
clear
「使用されたエントリの数をゼロに設定する」[1]だけなので、古いエントリは引き続きベクターで読み取れる可能性があります。新しいサイズを取得するために使用しないsize()
が、他の方法を使用する場合、値はまだそこにあります。
clear
実際にコンテンツが完全に削除され、アクセスできなくなる可能性もあります。この場合、コンテンツの一部を使用しようとすると、プログラムがクラッシュします。
[1]はい、詳細が必要な場合は、これよりも「多く」のことを行います。単純化しています。たとえば、デストラクタをベクトル内の要素と呼びますが、それでも「ものはまだそこにある」場合であり、有効とは見なされなくなります。