yhkn.net
当前位置:首页 >> 对C++ 中ItErAtor的疑惑 >>

对C++ 中ItErAtor的疑惑

把他当成一个指针来看就好了. 比如说 vector<int> v; vector<int>::iterator iter; // 其实里面的iterator 你可以这么理解typedef int* iterator; // 是一个指向所属容器的指针 iter = v.begin()//指向v容器的第一个元素 可以对iter做增与减的操作 ++iter; --iter;

iterator可以说是一个模板类,它是个指针类型,不是专属于某个类或类型的.它是一个类,但这个类实现了指针的功能,可以把它当做指针来理解和使用.iterator是vector中的一个typedef,如VS的头文件是 typedef _Vector_iterator<_Mybase> iterator; g++是 typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator;

楼主,你好:iterator是C++标准库(STL)中的迭代器~~~比如你建一个链表(要记得#include#include)listA;再list::iteratorit,这样,就可以对链表进行遍历了~其实,你可以把它理解成类似指针的东西~当然,只是用处差不多,使用方式和

迭代器list<int> lst;for(list<int>::iterator i = lst.begin(); i != lst.end(); i++) printf("%d", *i);iterator本质就是一个指针,和下面类似char s[] = "hello";for(char* p = s; *p != '\0'; p++) printf("%c", *p);

iterator 顾名思义是迭代器的意思.他是一个可迭代的类型的迭代器.从使用的角度看,她是一个指向其元素的引用.比如对于 int[] 这样的,其就是一个 指向数组元素的非空指针.对于 std::vector 这样的,就是指向一个 std::vector::iterator 定义的类型.所以,对于 迭代器,可以使用 operator -> 和 operator * .

Iterator使用: 一个ostream_iteartor的例子: 复制代码 1 #include <iostream> 2 3 using namespace std; 4 5 template<class T> 6 class Ostream_iterator { 7 public: 8 Ostream_iterator(ostream &os,const char* s): 9 strm(&os), str(s){} 10

templateclass iterator { public: T *ptr; iterator(){} iterator(T *p){ptr=p;} T &operator*(){return *ptr;} iterator &operator++(){++ptr;return *this;} iterator &operator--(){--ptr;return *this;} bool operator==(iterator it){return ptr==it.ptr;} bool operator!=(iterator it){return ptr!=it.ptr;} };简单程序,请参考~

容器的迭代器,每种容器都有自己的迭代器.其作用类似一个指针(绝对不是指针),具体请看C++ primer 或 STL

① std::iterator_traits<Itr>::iterator_category() 前面须要添加typename,即:sort_helper(beg, end, typename std::iterator_traits<Itr>::iterator_category());② sort_helper里面调用的sort应该是std::sort,否则namespace my中的sort_helper调用sort

mylist.erase(it);

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.yhkn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com