C++遍历vetcor容器
时间: 2023-11-07 19:11:50 浏览: 92
遍历vector容器可以使用迭代器或者范围循环语句。
1. 使用迭代器遍历vector容器:
```c++
#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;
}
```
输出结果:
```
1 2 3 4 5
```
2. 使用范围循环语句遍历vector容器:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec{1, 2, 3, 4, 5};
// 使用范围循环语句遍历vector
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
1 2 3 4 5
```
相关问题
c++如何快速遍历 vector容器
在C++中,可以使用范围-based for循环来快速遍历vector容器中的元素。以下是示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int element : vec) {
std::cout << element << " ";
}
return 0;
}
```
上述代码中,我们首先创建了一个名为`vec`的vector容器,并初始化了一些整数元素。然后,使用范围-based for循环遍历整个容器,将每个元素打印到标准输出。输出结果为:`1 2 3 4 5`。
使用范围-based for循环可以简化遍历vector容器的代码,使其更加易读和简洁。
使用C++11新特性遍历map容器并删除元素
在C++11中,我们可以使用range-based for循环结合C++11新特性auto和lambda表达式来遍历map容器并删除元素。以下是一个示例代码:
```
#include <iostream>
#include <map>
int main(){
std::map<std::string, int> myMap = {
{"apple", 5},
{"banana", 3},
{"pear", 2}
};
// 使用 range-based for 循环遍历 map
for(auto it = myMap.begin(); it != myMap.end();)
{
// 使用 lambda 表达式判断是否需要删除元素
if(it->second == 3)
{
it = myMap.erase(it);
}
else
{
++it;
}
}
// 输出删除后的 map
for(auto& [key, value] : myMap)
{
std::cout << key << " => " << value << std::endl;
}
return 0;
}
```
在这个代码中,我们使用了一个迭代器`it`来遍历map容器,使用lambda表达式判断是否需要删除元素。具体地,我们使用`it->second`访问当前元素的值,如果值为3,则使用`myMap.erase(it)`删除当前元素,并将迭代器指向下一个元素。否则,我们只是将迭代器指向下一个元素。
在删除元素后,我们使用range-based for循环遍历map容器并输出剩余的元素。
希望这个示例代码能够帮助您了解如何使用C++11新特性遍历map容器并删除元素。
阅读全文