cpp遍历vector
时间: 2024-09-13 08:05:53 浏览: 48
C++ Vector遍历的几种方式
在C++中,`vector`是一种动态数组容器,它允许我们在程序运行期间添加或删除元素。遍历`vector`有多种方法,以下是常见的几种:
1. **通过索引**(Index-based iteration):
- 使用下标直接访问每个元素,例如:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
```
- 或者使用`at()`方法,这会进行范围检查避免越界错误,如果索引超出范围会抛出异常。
2. **迭代器(Iterator-based iteration)**:
- 迭代器是C++容器提供的一个通用机制,可以逐个访问容器中的元素:
```cpp
for (const auto& elem : vec) {
std::cout << elem << " ";
}
```
这里`auto`关键字用于隐式地推断元素类型。
3. **增强for循环(Range-based for loop)**:
- 对于C++11及以上版本,可以使用范围基础for循环简化遍历过程:
```cpp
for (auto elem : vec) {
std::cout << elem << " ";
}
```
这种方式同样支持自动类型推导。
4. **指针遍历** (Pointer-based iteration):
- 可以使用指向vector首元素的指针和步长遍历:
```cpp
auto ptr = vec.begin();
while (ptr != vec.end()) {
std::cout << *ptr << " ";
++ptr;
}
```
这种方法需要显式处理空指针检查 (`!= vec.end()`) 和递增指针操作 (`++ptr`).
5. **引用遍历**:
- 类似于指针,可以使用引用而不是值:
```cpp
for (auto& ref : vec) {
std::cout << ref << " ";
}
```
每种方法各有其优缺点,根据实际需求选择最适合的方式。如果你想要询问特定的细节或遇到问题,请告诉我,我会进一步帮助解答。
阅读全文