📅  最后修改于: 2023-12-03 15:36:16.912000             🧑  作者: Mango
在 C++ 中,向量是一种动态数组,可以方便地添加和删除元素。删除元素时,我们需要知道要删除的元素在向量中的位置。
要删除指定位置的元素,可以使用 erase
方法。该方法需要指定要删除的位置。例如,删除向量 vec
中的第三个元素,可以使用以下代码:
vec.erase(vec.begin() + 2);
其中,vec.begin()
返回向量 vec
的迭代器,添加数字 2
后,移动迭代器到第三个元素位置。即 vec.begin() + 2
表示向量中第三个元素的迭代器。erase
方法将删除该位置的元素。
要删除指定元素,可以使用 erase
方法结合 find
方法。 find
方法需要指定要查找的元素,如果找到,将返回该元素在向量中的位置。如果未找到,将返回向量的尾部迭代器。
例如,删除向量 vec
中值为 5
的元素,可以使用以下代码:
auto it = find(vec.begin(), vec.end(), 5);
if (it != vec.end()) {
vec.erase(it);
}
其中,find
方法返回类型为迭代器,表示查找到的元素位置或向量的尾部。
要删除向量中的重复元素,可以使用 unique
和 erase
方法。
unique
方法将删除相邻的重复元素,并返回指向新的末尾位置的迭代器。erase
方法将删除新的末尾位置到向量的末尾的所有元素。例如:
vec.erase(unique(vec.begin(), vec.end()), vec.end());
其中,vec.begin()
和 vec.end()
分别指向向量的起始位置和末尾位置。
注意:使用 unique
方法前,需要对向量进行排序。
C++ 中删除向量中的元素,可以使用 erase
方法结合迭代器或 find
方法。要删除重复元素,可以使用 unique
方法和 erase
方法。但要注意循环和迭代器的变化。