迭代器如何转型?
如果是一个常量的迭代器类型,如何把常量转换从而可以赋给一个变量的迭代器呢?
编译说要用其定义的操作符,我不知道定义的是哪个啊.
[解决办法]
假如你有一个deque和一个该deque的const_iterator如下
deque<int> d; deque<int>::const_iterator citr;
[解决办法]
const_iterator不能直接转为iterator,要得到与const_iterator相对应的iterator,需要使用distance和advance
例子如下:
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位置