对正向迭代器进行++操作时,迭代器会指向容器中的后一个元素; 而对反向迭代器进行++操作时,迭代器会指向容器中的前一个元素。 常用的迭代器按功能强弱分为输入、输出、正向、双向、随机访问五种,这里只介绍常用的三种。 1)正向迭代器。假设 p 是一个正向迭代器,则 p 支持以下操作:++p,p++,*p。此外,两个正...
(2)迭代器:随机访问迭代器(Random Access Iterator) 双向迭代器(Bidirectional Iterator) 前向迭代器(Forward Iterator) 输入迭代器(Input Iterator) 输出迭代器(Output Iterator) (3)适配器就是Interface(接口),对容器、迭代器和算法进行包装,但其实质还是容器、迭代器和算法,只是不依赖于具体的标准容器、迭代器和算...
输出迭代器:(可看做输入迭代器的补集) 至少支持前后置++, 解引用*(赋值的左侧),只能向一个输出迭代器赋值一次,单遍扫描。 如copy第3个参数,ostream_iterator 前向迭代器: replace, forward_list 双向迭代器:(--) reverse 随机访问迭代器: < <= > >= + += - -= 两个迭代器相减 下标运算符 sort arra...
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int a[10]={12,31,5,2,23,121,0,89,34,66}; vector<int> v1(a,a+10); vector<int>::iterator result1,result2;//result1和result2是随机访问迭代器 result1=find(v1.begin(),v1.end(),2...
STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据,从实现角度来看,STL容器是一种class template。算法:各种常用的算法,如sort、find、copy、for_each。从实现的角度来看,STL算法...
后面将使用到std::string里面的迭代器,该迭代器为 随机访问迭代器。 20 string类 string是C+ +标准库的一个重要的部分,主要用于字符串处理。C++的算法库对string类有着很好的支持,并且string类还和c语言的字符串之间有着良好的接口。string类里面编写了前面讲解过的各类函数,构造函数、运算符重载、拷贝构造函数....
同时,由于需要借助中控器进行数据操作,所以其操作速度没有vector那么快而已。 deque容器的迭代器也是支持随机访问的。 2.deque构造函数 deque<T> deqT; //默认构造形式 deque(beg,end); //构造函数将[beg,end)区间的元素拷贝给当前对象(左开右闭) deque(n,elem); //将n个elem拷贝给当前对象...
一个随机访问迭代器,指向紧靠受控序列的末尾之外的位置。 用于获取一个迭代器,该迭代器指定受控序列的current末尾,但如果受控序列的长度发生更改,则该迭代器的状态也会发生更改。 注解 有关详细信息,请参阅deque::end (STL/CLR)。 适用于 产品版本 .NET Framework3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6....
beg:开始迭代器 end:结束迭代器 value:要查找的元素 这里的find查找在下,对应的迭代器是支持随机访问的,而向set和map容器这种不支持随机访问的,其find和count是成员函数,而这里的find是库的全局函数。 如果对于自定义数据类型的查找,需要重载==来实现find的判断。