vector 迭代器获取值
时间: 2023-11-08 07:02:05 浏览: 156
要获取vector迭代器的值,可以使用*运算符。对于正向迭代器,可以使用begin()获取第一个元素的迭代器,使用end()获取最后一个元素之后的迭代器。对于反向迭代器,可以使用rbegin()获取最后一个元素的迭代器,使用rend()获取第一个元素之前的迭代器。以下是一个示例代码:
```cpp
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
vector<int>::iterator it;
// 正向迭代器遍历
for (it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
vector<int>::reverse_iterator rit;
// 反向迭代器遍历
for (rit = v.rbegin(); rit != v.rend(); rit++) {
cout << *rit << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
5 4 3 2 1
```
相关问题
vector 迭代器
vector 迭代器是用于遍历 vector 容器中的元素的工具。它类似于指针,可以指向 vector 容器中的特定位置,并且可以通过它来访问和修改该位置的值。
在 C++ 中,vector 迭代器是一个迭代器类的对象,可以通过使用成员函数 begin() 和 end() 来获得 vector 的起始和结束迭代器。begin() 返回指向第一个元素的迭代器,end() 返回指向最后一个元素之后的迭代器。
可以使用迭代器来遍历 vector 容器中的元素,例如使用 for 循环和迭代器来访问和修改每个元素的值。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
// 使用迭代器遍历 vector
for (std::vector<int>::iterator it = nums.begin(); it != nums.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
```
以上代码将输出:1 2 3 4 5,表示成功遍历了 vector 容器中的所有元素。
需要注意的是,迭代器也可以用于修改 vector 容器中的元素值。例如,通过解引用迭代器并赋予新值来修改元素。
vector迭代器删除
在C++中,`std::vector`是一个动态数组,它的迭代器可以用于遍历元素并进行插入、删除等操作。当你想要从`vector`中删除元素时,可以使用迭代器配合`erase`函数。以下是如何使用迭代器删除元素的基本步骤:
1. 首先,获取到需要删除元素的迭代器。如果你已经有了指向该元素的引用或指针,你可以将其转换为迭代器。
```cpp
std::vector<int>::iterator it = my_vector.begin(); // 假设my_vector是你想要操作的vector
```
2. 确认要删除的元素存在,并更新迭代器到下一个元素的位置,因为`erase`会移动后续元素填补空缺。
```cpp
while (it != my_vector.end() && (*it) != target_value) {
++it;
}
// 如果找到目标值,就准备删除它
if (it != my_vector.end()) {
my_vector.erase(it); // 删除当前迭代器所指向的元素
}
```
3. `erase`函数会自动调整向量的大小,并返回新的结束迭代器,这一步不是必需的,但可能会有帮助。
注意,如果直接在`end()`之后删除元素,迭代器将不再有效。此外,由于迭代器是按值传递的,所以对同一个迭代器进行多次删除不会有任何影响。
阅读全文