码迷,mamicode.com
首页 > 其他好文 > 详细

vector的使用注意事项

时间:2018-10-05 13:47:33      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:mes   否则   注意事项   连续   原因   使用   space   str   ios   

示例1:

#include "iostream"  
#include "vector"  
using namespace std;  
   
int main(void)  
{  
    vector<int>array;  
    array.push_back(100);  
    array.push_back(300);  
    array.push_back(300);  
    array.push_back(500);  
    vector<int>::iterator itor;  
    for(itor=array.begin();itor!=array.end();itor++)  
    {  
        if(*itor==300)  
        {  
            itor = array.erase(itor);  
        }  
    }  
    for(itor=array.begin();itor!=array.end();itor++)  
    {  
        cout<<*itor<<" ";  
    }  
    return 0;  
} 

  输出结果为:100 300 500 

为什么不是100 500呢?

原因如下:

vector erase以后,itor已经指向下一个元素了,不应该执行itor++,
否则会跳过下一个元素,即连续两个300时跳过了第二个300. 

 

vector的使用注意事项

标签:mes   否则   注意事项   连续   原因   使用   space   str   ios   

原文地址:https://www.cnblogs.com/wuyepeng/p/9744552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!