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

擦除接受一个迭代器作为参数。

你可以做

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

你也可以传入一个范围

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

您应该注意的一件事是矢量的大小也会减小。

于 2009-11-07T06:07:28.883 回答
0

擦除方法将迭代器作为参数。

例子

于 2009-11-07T06:09:13.310 回答
0

如果特定键不是位置并且说它在向量中的一些数据,那么必须为该数据迭代向量并擦除特定的迭代器。

于 2009-11-07T08:29:44.120 回答