2

以下を定義し、要素で埋めました。

vector <vector<double> > my_vector;

しかし、特定のキーを持つ要素を削除したい...

my_vector.erase(int(specific_key));

しかし、それは私を許可しません。そのキーに割り当てられた要素を適切に破棄するにはどうすればよいですか?

4

4 に答える 4

5

specific_keyのその位置にある要素を意味すると仮定するとvector:

my_vector.erase(my_vector.begin() + specific_key);

「最も正しい」答えになります。

一致する要素を削除する場合(この例では、次specific_keyのタイプである必要があります。vector<double>

my_vector.erase(find(my_vector.begin(), my_vector.end(), specific_key));
于 2009-11-07T06:09:23.950 に答える
1

erase は、イテレータを引数として受け取ります。

できるよ

my_vector.erase (my_vector.begin() + specific_key);

範囲で渡すこともできます

my_vector.erase (my_vector.begin(), my_vector.begin() + 2);

注意すべきことの 1 つは、ベクトルのサイズも縮小されることです。

于 2009-11-07T06:07:28.883 に答える
0

erase メソッドは、イテレータを引数として取ります。

于 2009-11-07T06:09:13.310 に答える
0

特定のキーが位置ではなく、ベクトルのデータを言う場合、そのデータのベクトルを反復し、特定のイテレータを消去する必要があります。

于 2009-11-07T08:29:44.120 に答える