c++如何用迭代器循环遍历vector中的vector
时间: 2023-12-03 17:40:08 浏览: 113
以下是使用迭代器循环遍历vector中的vector的c++代码示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> vec{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 使用迭代器循环遍历vector中的vector
for (auto it = vec.begin(); it != vec.end(); ++it) {
for (auto itt = it->begin(); itt != it->end(); ++itt) {
cout << *itt << " ";
}
cout << endl;
}
return 0;
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
相关问题
C++利用迭代器怎么遍历vector中间部分数据,写出代码
在C++中,你可以使用迭代器来遍历`std::vector`的中间部分数据,迭代器提供了一种安全的方式来逐个访问容器中的元素。假设我们有一个`vector<int>`,你想从索引`mid`开始到结尾进行遍历,这里是一个例子:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 示例vector
size_t mid = vec.size() / 2; // 假定中间位置
// 使用begin和end函数获取迭代器
auto it_start = vec.begin();
auto it_end = vec.end();
// 移动迭代器到中间位置
advance(it_start, mid); // 进行偏移
// 遍历中间部分
for (auto it = it_start; it != it_end; ++it) {
std::cout << *it << " ";
}
return 0;
}
```
在这个例子中,`advance()`函数将`it_start`移动到了指定的索引位置,然后通过`for`循环,从那个位置开始到`vec.end()`,打印出中间部分的所有元素。
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` 取出迭代器指向的值。
阅读全文