vector 的迭代器用法
时间: 2024-05-09 12:13:28 浏览: 114
vector是C++标准模板库(STL)中的一个容器,它可以动态地增加或缩减容器的大小,而且支持随机访问。vector的迭代器用法如下:
1. begin()函数返回指向vector第一个元素的迭代器;
2. end()函数返回指向vector最后一个元素后面的位置的迭代器,即end指向的位置不包含任何元素;
3. rbegin()函数返回指向vector最后一个元素的逆向迭代器;
4. rend()函数返回指向vector第一个元素前面的位置的逆向迭代器,即rend指向的位置不包含任何元素;
5. *it: 迭代器it可以像指针一样使用,*it可以访问迭代器it所指向的元素;
6. it++: 迭代器it可以使用自增运算符++,将其指向下一个元素;
7. it--: 迭代器it可以使用自减运算符--,将其指向上一个元素;
8. it+n: 迭代器it可以使用加上一个整数n,将其指向后面第n个元素,其中n可以为正数或负数;
9. it1-it2: 迭代器it1和it2相减得到两个迭代器之间的距离,即这两个迭代器之间有多少个元素。
相关问题
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
```
vector迭代器的用法
使用迭代器可以更方便地解引用和访问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()函数来获取迭代器的起始和结束位置,并通过解引用迭代器来访问元素的值。
阅读全文