怎么使用 vector<int> 类型的迭代器
时间: 2023-08-21 15:18:31 浏览: 45
使用 vector<int> 类型的迭代器可以通过以下方式:
1. 定义迭代器变量
```c++
vector<int> v {1, 2, 3, 4, 5};
vector<int>::iterator it; // 定义迭代器变量
```
2. 遍历 vector
```c++
vector<int> v {1, 2, 3, 4, 5};
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
cout << *it << " "; // 输出每个元素
}
```
其中,`v.begin()` 返回 vector 的第一个元素的迭代器,`v.end()` 返回 vector 的最后一个元素的下一个位置的迭代器。在遍历时,使用 `*it` 可以获取当前迭代器指向的元素的值。
3. 插入和删除元素
```c++
vector<int> v {1, 2, 3, 4, 5};
vector<int>::iterator it = v.begin();
v.insert(it + 2, 6); // 在第三个位置插入元素 6
v.erase(it + 3); // 删除第四个位置的元素
```
在插入和删除元素时,可以通过迭代器指定要操作的位置。例如,`it + 2` 表示迭代器向后移动两个位置,即指向第三个元素。`v.insert(it + 2, 6)` 表示在第三个元素的位置插入元素 6。`v.erase(it + 3)` 表示删除第四个元素。
相关问题
vector<vector<int>>迭代器遍历
可以使用双重循环遍历vector<vector<int>>,例如:
```
vector<vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (auto row : matrix) {
for (auto elem : row) {
cout << elem << " ";
}
cout << endl;
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
map<int,vector<int> >
map<int,vector<int>> 是一个模板类,是STL中的关联容器。它将一个整数类型的键(key)与一个整数数组类型的值(value)进行一对多的映射。换句话说,它可以将一个整数映射到一个整数数组。
要使用 map<int,vector<int>>,需要包含头文件<map>。可以通过以下方式定义一个 map<int,vector<int>> 实例:
```
#include <map>
#include <vector>
using namespace std;
int main() {
map<int,vector<int>> m;
// 现在可以使用 m 进行各种操作了
return 0;
}
```
可以使用以下基本操作函数来操作 map<int,vector<int>> 实例:
- `m[key]`:通过键(key)访问值(value)。可以用于获取值或者修改值。
- `m.insert(pair<int,vector<int>>(key, value))`:插入一个键值对(key, value)到 map 中。
- `m.erase(key)`:根据键(key)删除对应的键值对。
- `m.size()`:返回 map 中键值对的数量。
- `m.empty()`:检查 map 是否为空。
- `m.find(key)`:根据键(key)查找对应的迭代器,可以用于判断键是否存在,并可以通过迭代器访问值。
这些是 map<int,vector<int>> 的基本操作函数,可以根据需要使用它们来操作 map 的键值对。