vector 删除指定元素
时间: 2023-11-26 17:02:56 浏览: 100
对于vector删除指定元素,可以使用erase函数来实现。erase函数接受一个迭代器参数,指向要删除的元素的位置,然后将该元素从容器中移除。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
int target = 3;
auto it = std::find(vec.begin(), vec.end(), target);
if (it != vec.end()) {
vec.erase(it);
std::cout << "Element " << target << " removed from vector" << std::endl;
} else {
std::cout << "Element " << target << " not found in vector" << std::endl;
}
return 0;
}
```
相关问题
vector删除指定元素
vector是C++语言STL(Standard Template Library)中的一个容器类,类似于数组,但能动态改变大小,并且提供一些便于操作的函数。
在vector中删除某个指定元素有两种方法:
方法一:
使用erase()函数。erase()函数能够删除vector容器中某个指定位置的元素,也能删除一个区间内的元素。该函数的参数可以是迭代器,也可以是元素位置。
例如,删除vector中的第一个元素可以这样实现:
vector<int> vec = {1,2,3,4,5};
vec.erase(vec.begin());//删除第一个元素
如果需要删除多个元素,可以使用迭代器和for循环来实现:
vector<int> vec = {1,2,3,4,5};
for (auto iter = vec.begin(); iter != vec.end(); )
{
if (*iter == 2 || *iter == 4)
{
iter = vec.erase(iter);
}
else
{
++iter;
}
}
方法二:
使用remove()函数。remove()函数能够将所有符合要求的元素移到vector的末尾,并返回迭代器,用于表示新范围的结尾,之后使用erase()函数删除所有末尾的元素。
例如,删除vector中的所有元素值为2的元素可以这样实现:
vector<int> vec = {1,2,3,2,5};
vec.erase(remove(vec.begin(), vec.end(), 2), vec.end());//删除所有元素值为2的元素
这种方法的优点在于不用考虑vector中元素的位置,但缺点是需要调用两个函数。
c vector 删除指定元素
你可以使用 `std::remove()` 和 `std::vector::erase()` 来删除 `std::vector` 中的指定元素。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 删除元素 5
vec.erase(std::remove(vec.begin(), vec.end(), 5), vec.end());
// 输出结果
for (auto num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
运行以上代码,输出结果为:`1 2 3 4 6 7 8 9 10`。在这个示例中,我们使用 `std::remove()` 将要删除的元素移动到了容器的末尾,并返回一个指向新末尾的迭代器,然后再使用 `std::vector::erase()` 删除末尾的元素。这样就实现了删除指定元素的功能。
阅读全文