c++ 迭代器遍历vector,并获取所有数据
时间: 2024-10-25 09:07:45 浏览: 75
在C++中,迭代器是一种特殊的指针,用于遍历容器如`std::vector`中的元素。以下是如何使用迭代器遍历`vector`并获取所有数据的基本步骤:
```cpp
#include <iostream>
#include <vector>
int main() {
// 创建一个vector
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 定义一个iterator指向vector的第一个元素
std::vector<int>::iterator it;
// 遍历vector
for (it = numbers.begin(); it != numbers.end(); ++it) {
// 获取当前元素值
int current_num = *it;
std::cout << "Element: " << current_num << std::endl;
}
return 0;
}
```
在这个例子中,`numbers.begin()`返回一个指向vector首元素的迭代器,`numbers.end()`返回一个结束标记,表示vector结尾的位置。`*it`则是对迭代器所指向的元素的解引用操作。
相关问题
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。
c++ 用迭代器遍历vector数组
可以通过以下代码使用迭代器遍历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 << " ";
}
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
其中,`vec.begin()` 返回一个指向vector第一个元素的迭代器,`vec.end()` 返回一个指向vector最后一个元素的下一个位置的迭代器,注意这个迭代器并不指向最后一个元素本身。在遍历时,使用 `*it` 取出迭代器指向的值。
阅读全文