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

迭代器+迭代器 容许啊

2013-12-21 
迭代器+迭代器 允许啊?看c++ primer version 4 ,P269iter1 + iter2 //请假下这个是嘛意思 ?[解决办法]试

迭代器+迭代器 允许啊?
看c++ primer version 4 ,P269
iter1 += iter2 //请假下这个是嘛意思 ?
[解决办法]
试了一下,vs2005下编译报错。说上说这个操作符只能用于vector和deque容器,而且这两个迭代器要指向同一个容器中的元素。
[解决办法]

引用:
这么经典的书是翻译错了还是原版错了阿 ?
还有下面的也错误了吧?




避免存储end操作返回的迭代器,如下面代码,该段代码将导致死循环,问题在于这个程序将end操作返回的迭代器值存储在名为last的局部变量中,循环体中实现了元素的添加运算,添加元素会使得存储在last中的迭代器失效。

[cpp] view plaincopy

    vector<int>::iterator first=v.begin(),last=v.end();  
      
    while(first!=last){  
        first=v.insert(first,32);  
        ++first;  
    }  

为了避免存储end迭代器,可以在每次做完插入运算后重新计算end迭代器值:

[cpp] view plaincopy

    while(first!=v.end()){  
        first=v.insert(first.42);  
        ++first;  
    }  

这一段没有错啊,你怎么感觉错了呢?  第一段代码的确是迭代器已经失效了。  而第二个似乎也是死循环,
我看了下书,第二个你在insert(first, 42); 中你少抄了一个++,实际是:insert(++first, 42);

热点排行