zoukankan      html  css  js  c++  java
  • vector的使用注意事项

    示例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的初始化方式总结:

    vector<T> v1;//v1是一个空vector,它潜在的元素是T类型的,执行默认初始化

    vector<T>v2(v1);//v2中包含有v1所在元素的副本

    vector<T>v2=v1;//等价于v2(v1),v2中包含v1所有元素的副本

    vector<T>v3(n,val);//v3包含了n个重复的元素,每个元素的值都是val

    vector<T>v4(n);//v4包含了n个0

    vector<T>v5{a,b,c,...}//v5包含了初始值个数的元素,每个元素被赋予相应的初始值

    vector<T>v5={a,b,c,...}//等价于v5{a,b,c..}

  • 相关阅读:
    Linux下的文件权限
    启动memcached服务器并检查memcached是否启动,关闭memcached
    MySQL的mysqldump工具的基本用法
    MemAdmin
    不同服务器数据库之间的数据操作
    公用js
    AspNetPager分页控件的使用
    平台帮助
    触发器、游标
    jQuery增删改查
  • 原文地址:https://www.cnblogs.com/wuyepeng/p/9744552.html
Copyright © 2011-2022 走看看