以下を定義し、要素で埋めました。
vector <vector<double> > my_vector;
しかし、特定のキーを持つ要素を削除したい...
my_vector.erase(int(specific_key));
しかし、それは私を許可しません。そのキーに割り当てられた要素を適切に破棄するにはどうすればよいですか?
以下を定義し、要素で埋めました。
vector <vector<double> > my_vector;
しかし、特定のキーを持つ要素を削除したい...
my_vector.erase(int(specific_key));
しかし、それは私を許可しません。そのキーに割り当てられた要素を適切に破棄するにはどうすればよいですか?
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));
erase は、イテレータを引数として受け取ります。
できるよ
my_vector.erase (my_vector.begin() + specific_key);
範囲で渡すこともできます
my_vector.erase (my_vector.begin(), my_vector.begin() + 2);
注意すべきことの 1 つは、ベクトルのサイズも縮小されることです。
erase メソッドは、イテレータを引数として取ります。
特定のキーが位置ではなく、ベクトルのデータを言う場合、そのデータのベクトルを反復し、特定のイテレータを消去する必要があります。