私はstackoverflowに関するこのトピックに関する多くの質問を読みました。しかし、どれにも答えが見つかりませんでした。したがって、この質問。
私は持っています
vector< vector< int > > temp
外部ベクトル用にメモリを予約できます:
temp.reserve(20);
ここで、内部ベクトルごとにメモリを予約したいと思います。私はこれを使用して行うことができます:
temp[i].reserve(500);
ただし、temp.clear();を使用すると その場合、tempの容量は20として保持されます。ただし、tempベクトルを20個の内部ベクトルで初期化すると、これらの内部ベクトルの容量は0にリセットされます(VS2010 Intellisenseによる)。
私の質問:
外部ベクトルをクリアして再初期化した後でも、内部ベクトル容量500を維持するにはどうすればよいですか?
OpenCVのfindContours関数を使用しています。この関数は、外部ベクトルをクリアし、内部ベクトルの新しいセットで埋めます。この関数は、メモリの割り当て解除と再割り当てを引き起こしますか?