c++遍历一个vector满足条件就把vector里面的元素删除
时间: 2023-10-22 21:18:35 浏览: 71
可以使用STL中的`remove_if`函数和`erase`函数来实现:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool isEven(int n){
return n % 2 == 0;
}
int main(){
vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
nums.erase(remove_if(nums.begin(), nums.end(), isEven), nums.end());
for(int num : nums){
cout << num << " ";
}
return 0;
}
```
以上代码中,`isEven`函数用来判断一个数是否为偶数。`remove_if`函数会将满足条件的元素移动到vector的末尾,并返回指向第一个被移动元素的迭代器。`erase`函数将指定范围内的元素删除。
运行结果为:
```
1 3 5 7 9
```
相关问题
遍历一个vector容器访问其中元素
可以使用迭代器来遍历一个 vector 容器,访问其中的元素。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历 vector 容器
for (auto it = vec.begin(); it != vec.end(); ++it)
{
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们使用了 `vec.begin()` 和 `vec.end()` 函数来获取 vector 容器的起始迭代器和结束迭代器,然后使用循环结构遍历整个容器,并使用 `*it` 来访问当前迭代器指向的元素。
除了使用迭代器,也可以使用下标运算符 `[]` 来访问 vector 容器中的元素。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用下标运算符访问 vector 容器中的元素
for (int i = 0; i < vec.size(); ++i)
{
std::cout << vec[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们使用了 `vec.size()` 函数来获取 vector 容器中的元素数量,然后使用循环结构和下标运算符 `[]` 来访问每个元素。
c++ 遍历vector的元素
遍历vector的元素可以使用循环结构,例如使用for循环或者迭代器来实现。下面是两种常见的遍历vector的方法:
1. 使用for循环遍历vector的元素:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用for循环遍历vector的元素
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
2. 使用迭代器遍历vector的元素:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历vector的元素
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```