首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

迭代器怎么转型

2012-03-27 
迭代器如何转型?如果是一个常量的迭代器类型,如何把常量转换从而可以赋给一个变量的迭代器呢?编译说要用其

迭代器如何转型?
如果是一个常量的迭代器类型,如何把常量转换从而可以赋给一个变量的迭代器呢?
编译说要用其定义的操作符,我不知道定义的是哪个啊.

[解决办法]
假如你有一个deque和一个该deque的const_iterator如下

C/C++ code
    deque<int> d;    deque<int>::const_iterator citr;
[解决办法]
const_iterator不能直接转为iterator,要得到与const_iterator相对应的iterator,需要使用distance和advance
例子如下:
C/C++ code
typedef deque<int> IntDeque;              typedef IntDeque::iterator Iter;typedef IntDeque::const_iterator ConstIter;IntDeque  d;ConstIter ci; //一个const_iteratorIter i(d.begin());                          // 初始化i为d.begin()advance(i, distance<ConstIter>(i, ci));         // 把i移到指向ci位置 

热点排行