C++的迭代器和指针

来源:互联网 发布:windows音频设备隔离 编辑:程序博客网 时间:2024/05/03 12:59
    1:首先迭代器是一种专门为访问容器而设计的一种数据类型,同时也是一种数据结构,类模板,他提供来比下标操作更为通用的 方法,对所有的容器有适用;

    2:每个容器都有自己的iterator类型,如vector<int>::iterator

    3:begin和end操作,begin()返回迭代器的第一个元素,end()返回容器最后一个元素的下一个元素,如果vector为空,则begin返回的迭代器于end相同。

    4:迭代器的使用类似于指针,可以经行解引用,加减,相等等操作

    5:迭代器的类型:const_iterator和const iterator

          const_iterator是一个指向常容器的迭代器,自身是个变量,但是指向的直不能改变;

          const iteratro是一个指向容器的常迭代器,自身是个常量,一旦赋值,不能改变其指向的直;

    6:迭代器和指针的差别

         指针其实是狭义的迭代器,迭代器是指针的抽象。指针用于指向单个对象,而迭代器用于访问容器内的元素。

         迭代器是具有类似指针行为的class template。也就是重载了operator-> operator* operator++等操作符的类模板。

         由于指针的使用可能产生不可预料的过程,所以在现代的C++中采用vecator和interator代替一般的数组,string类型代替一般的字符串。C++中更偏向于使用容器类。

    7:地雷:任何改变vector长度的操作都会使已存在的迭代器失败。例如,在调用push_back之后,就不能再信赖指向vector的迭代器的值了
0 0
原创粉丝点击