zoukankan      html  css  js  c++  java
  • STL vector

    Vectors are sequence containers representing arrays that can change in size.

    Constructor

    vector可以使用四种参数方法构造

    //1. 无参数,默认构造函数,构造一个空的vector
    vector();
    // 2. 数量(num)和值(val) - 构造一个初始放入num个值为val的元素的Vector 
    vector( size_type num, const TYPE &val );
    // 3. vector(from) - 构造一个与vector from 相同的vector 
    vector( const vector &from );
    4. 迭代器(start)和迭代器(end) - 构造一个初始值为[start,end)区间元素Vector(注:半开区间). 
    vector( input_iterator start, input_iterator end );
    
    vector<int> v1(5, 9);
    vector<int> v2(v1);// copy constructor
    vector<int> v3(v1.begin(), v1.end() - 1);
    

    迭代器

    member function effect
    begin() return iterator to beginning(the index 0)
    end() return itetator to end (the position next to the last one )
    rbegin() Return reverse iterator to reverse beginning(the last one)
    rend() Return reverse iterator to reverse end(the position before the first one)
    for(vector<int>::iterator it = v1.begin(); it != v1.end(); it++){
        cout << *it << " ";
    }
    
    cout << endl;
    	
    for(vector<int>::reverse_iterator it = v1.rbegin(); it != v1.rend(); it++){
    	cout << *it << " ";
    }
    cout << endl;
    

    capacity

    member function effect
    size() return size
    max_size() return maximum size
    empty() test wether vector is empty
    cout << v1.max_size() << endl;
    while(!v1.empty()){
    	cout << v1.back() << endl;
    	v1.pop_back();
    }
    

    element access

    member function effect
    front() access the first element
    back() access the last element
    at() access element
    cout << v2.front() << endl;
    cout << v2.back() << endl;
    cout << v2.at(2) << endl;// 输出第三个元素,也就是index为2的元素
    

    Modifiers:

    member function effect
    push_back() add element at the end
    pop_back() delete the last element
    insert() insert element
    erase() rease element
    clear() clear content
    v1.push_back(1);
    v1.push_back(2);
    v1.push_back(3);
    v1.pop_back();
    vector<int> v;
    v.insert(v.begin(),10);//插入位置是迭代器
    v.insert(v.begin(),2,20);
    v.insert(v.begin(),v1.begin(),v1.begin()+2);
    v.erase(v.begin());//删除某个元素
    v.erase(v.begin(),v.end());// 删除某一段元素
    
    
  • 相关阅读:
    冒泡排序算法
    delphi 处理图片(剪切,压缩)
    delphi 创建DLL文件 及其调用和注意事项
    对属性的认识
    timer实现Grid自动换行(连续相同的id跳到下一行)
    Form1调用Unit2类中函数
    微信二次分享不显示摘要和图片
    location.search为空导致微信拿不到code的问题
    考虑一下微信跳转的登录流程如何修改-无感知
    微信7.0(2019年1月份之后,没法使用抓包了,也许是为了安全,所以联调出问题记得看后台日志)
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10281106.html
Copyright © 2011-2022 走看看