cpp从容器中删除指定元素
时间: 2023-12-07 14:06:07 浏览: 31
在 C++ 中,从容器中删除指定元素可以使用容器提供的 `erase()` 函数。该函数可以接受一个迭代器参数,指定要删除的元素在容器中的位置。以下是一个例子:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
// 删除元素 3
for (auto it = v.begin(); it != v.end(); ++it) {
if (*it == 3) {
v.erase(it);
break;
}
}
// 输出剩余元素
for (auto i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的例子中,我们使用 `vector` 容器存储了一些整数,并且通过循环遍历容器中的元素,找到要删除的元素 3,并使用 `erase()` 函数将其从容器中删除。最后,我们输出剩余的元素,即 1、2、4、5。
相关问题
cpp从类容器中删除指定属性值的元素
假设你的类容器是一个 `vector`,你希望删除其中所有值为 `x` 的元素,可以使用以下代码:
```
vector<int> myVector; // 假设 myVector 已经填充了一些元素
// 删除所有等于 x 的元素
myVector.erase(remove(myVector.begin(), myVector.end(), x), myVector.end());
```
上述代码中,`remove` 算法会将所有值为 `x` 的元素移动到容器的末尾,然后返回指向第一个被移动元素的迭代器。然后,`erase` 成员函数会将末尾的这些元素从容器中删除。
查找删除vector容器中指定元素
要删除vector容器中的指定元素,你可以使用标准库中的erase-remove惯用法。这个方法结合了erase()函数和remove()算法,可以高效地删除指定元素。
下面是一个示例代码,演示如何删除vector容器中的指定元素:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 3, 6, 7, 3};
// 要删除的元素
int target = 3;
// 使用erase-remove惯用法删除指定元素
vec.erase(std::remove(vec.begin(), vec.end(), target), vec.end());
// 打印删除后的vector
for (auto num : vec) {
std::cout << num << " ";
}
return 0;
}
```
在上面的示例中,我们先定义一个包含一些整数的vector容器。然后指定要删除的目标元素为3。接下来,我们使用erase-remove惯用法来删除指定元素。最后,我们遍历并打印删除后的vector。
运行上述代码,将输出:1 2 4 5 6 7,即成功删除了所有值为3的元素。
请注意,这种方法适用于删除单个元素或多个相同值的元素。如果你想要删除满足某个条件的元素,则可以使用更复杂的谓词函数。此外,如果你需要删除多个不同值的元素,也可以多次调用erase-remove惯用法来处理。