c++用迭代起遍历Vector
时间: 2024-10-29 20:15:00 浏览: 32
在C++中,如果你想要遍历`std::vector`容器,可以使用迭代器(Iterator)。迭代器是一种指向容器内部元素的对象,允许你在不暴露底层数据结构的情况下进行访问。以下是使用迭代器遍历`std::vector`的基本步骤:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {10, 20, 30, 40, 50};
// 创建一个指向vector首元素的迭代器
std::vector<int>::iterator it = vec.begin();
// 使用循环遍历每个元素
while (it != vec.end()) {
std::cout << *it << " "; // 输出当前元素的值
++it; // 迭代器前进一步,指向下一个元素
}
return 0;
}
```
在这个例子中,`vec.begin()`返回一个指向容器第一个元素的迭代器,`vec.end()`返回一个指向容器结束位置的一个迭代器,`*it`表示迭代器所指的元素值,`++it`则是将迭代器移动到下一个元素。
相关问题
c++ 使用迭代器遍历 vector数组中的 char数组 并取出每一个char数组的值
可以使用如下代码来实现:
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<char*> charVector{"hello", "world", "!"};
for (auto it = charVector.begin(); it != charVector.end(); ++it) {
char* currentChar = *it;
for (int i = 0; currentChar[i] != '\0'; ++i) {
std::cout << currentChar[i] << " ";
}
std::cout << std::endl;
}
return 0;
}
```
在这个例子中,我们创建了一个 `std::vector<char*>`,其中每个元素都是一个 char 指针(即一个 char 数组)。然后我们使用迭代器 `it` 遍历这个 vector,每次取出一个 char 指针,并使用一个 `for` 循环遍历这个 char 数组中的每个 char,直到遇到 `\0` 结束符。最后,我们输出每个 char 的值并换行。
c++ 迭代器遍历vector
你可以使用迭代器来遍历并修改 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) {
*it = *it * 2;
}
// 打印修改后的 vector
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们使用了 `std::vector<int>::iterator` 来声明迭代器,并通过 `vec.begin()` 和 `vec.end()` 获取 vector 的起始和结束位置的迭代器。然后,我们在循环中通过 `*it` 访问当前迭代器指向的元素,并进行修改。最后,我们使用范围-based for 循环打印修改后的 vector。
该示例将输出:2 4 6 8 10,即将 vector 中的每个元素乘以 2。
阅读全文