vector迭代器的用法
时间: 2023-10-28 22:00:51 浏览: 53
使用迭代器可以更方便地解引用和访问vector容器中的元素。在C++中,我们可以通过vector的begin()和end()函数获取迭代器的起始和结束位置。例如,使用vector<int>的迭代器可以这样声明: vector<int>::iterator itertemp; 然后,我们可以使用find函数来查找vector中的特定元素,例如find(vec.begin(), vec.end() , 5)可以用来查找vec容器中值为5的元素,并将其赋值给itertemp。
除了查找元素,迭代器还可以用来遍历vector容器中的元素。例如,我们可以通过迭代器来访问二维vector容器中的元素。首先,我们需要声明一个二维vector的迭代器,例如vector<vector<int> >::iterator iter=array.begin()。然后,使用while循环来遍历每一行,再在内层使用另一个迭代器来遍历每一行中的元素,例如,vector<int>::iterator iter_=(*iter).begin()。通过解引用迭代器,我们可以访问并输出每一个元素的值,例如,cout <<*iter_<<" "。最后,记得在每一轮迭代结束后,迭代器要递增一次,例如iter_++和iter++。
总结起来,vector迭代器的用法包括查找特定元素和遍历容器中的元素。我们可以使用begin()和end()函数来获取迭代器的起始和结束位置,并通过解引用迭代器来访问元素的值。
相关问题
vector迭代器用法
vector迭代器用于遍历vector容器中的元素。可以使用迭代器来访问和修改vector中的元素。以下是vector迭代器的用法示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历vector并输出元素
std::cout << "遍历vector并输出元素:" << std::endl;
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 使用迭代器修改vector中的元素
std::cout << "修改vector中的元素:" << std::endl;
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
*it = *it * 2;
}
// 再次使用迭代器遍历vector并输出修改后的元素
std::cout << "遍历vector并输出修改后的元素:" << std::endl;
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
遍历vector并输出元素:
1 2 3 4 5
修改vector中的元素:
遍历vector并输出修改后的元素:
2 4 6 8 10
```
C++中vector迭代器使用
在C++中,vector是一种动态数组,它提供了一组方便的方法来管理和操作元素。而迭代器是一种用于遍历容器中元素的对象。vector迭代器可以用于访问和修改vector中的元素。
要使用vector迭代器,首先需要创建一个vector对象,并向其中添加一些元素。然后,可以使用begin()和end()方法来获取迭代器的起始位置和结束位置。
下面是一个使用vector迭代器的示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历vector并输出元素
std::cout << "遍历vector输出元素:";
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 使用迭代器修改vector中的元素
std::cout << "修改前的vector:";
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
*it = *it * 2;
std::cout << *it << " ";
}
std::cout << std::endl;
// 使用迭代器插入新元素
std::cout << "插入新元素后的vector:";
vec.insert(vec.begin() + 2, 10);
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 使用迭代器删除元素
std::cout << "删除元素后的vector:";
vec.erase(vec.begin() + 3);
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
遍历vector输出元素:1 2 3 4 5
修改前的vector:2 4 6 8 10
插入新元素后的vector:2 4 10 6 8 10
删除元素后的vector:2 4 10 8 10
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)