我定义了以下内容并用元素填充它:
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));
擦除接受一个迭代器作为参数。
你可以做
my_vector.erase (my_vector.begin() + specific_key);
你也可以传入一个范围
my_vector.erase (my_vector.begin(), my_vector.begin() + 2);
您应该注意的一件事是矢量的大小也会减小。
擦除方法将迭代器作为参数。
如果特定键不是位置并且说它在向量中的一些数据,那么必须为该数据迭代向量并擦除特定的迭代器。