c++ vector备忘

来源:互联网 发布:toad oracle数据库管理 编辑:程序博客网 时间:2024/06/07 07:54

例子

#include<iostream>#include<vector>using namespace std;int main(){    vector<int> vec1;  //空容器    //等同于vector<int> vec2{1,2,3}    vector<int> vec2 = {1,2,3};  //有3个元素的容器    vector<int> vec3(vec2);  //用vec2初始化vec3    //等同于vector<int>::const_iterator it1 = vec2.begin()    auto it1 = vec2.cbegin();    auto it2 = it1 + 1;    vector<int> vec4(it1,it2);  //用迭代器初始化vec4    vector<int> vec5(10);  //有10个元素    vector<int> vec6(10,2);  //有10个元素,值都为2    for(auto it=vec2.cbegin();it!=vec2.cend();it++)        cout<<*it<<" ";    cout<<endl;    for(auto it=vec4.cbegin();it!=vec4.cend();it++)        cout<<*it<<" ";    cout<<endl;    //要对容器元素进行修改用begin(),相当于iterator    //而cbegin()相当于const_iterator    for(auto it=vec2.begin();it!=vec2.end();it++){        *it = *it * 2;        cout<<*it<<" ";    }    cout<<endl;    //等同于vector<int>::reverse_iterator it = vec2.rbegin()    //另外还有auto it=vec2.crbegin()    //等同于vector<int>::const_reverse_iterator it = vec2.rbegin()    for(auto it=vec2.rbegin();it!=vec2.rend();it++)        cout<< *it<<" ";    cout<<endl;    //交换两容器的元素    vec1.swap(vec2);    cout<<vec1.size()<<" "<<vec2.size()<<endl;  //3 0    vector<int> vec = {2,3};    cout<<vec.size()<<endl;  //元素个数    cout<<vec.max_size()<<endl;  //能容纳的元素个数        if(vec.empty())        cout<<"empty"<<endl;    else        cout<<"not empty"<<endl;    vec.push_back(4);  //2 3 4    vec.insert(vec.begin(),1);  //1 2 3 4    vec.insert(vec.end(),5);  //1 2 3 4 5    vec.insert(vec.end(),{10,11});  //1 2 3 4 5 10 11    vec.insert(vec.end(),vec1.begin(),vec1.end());  //1 2 3 4 5 10 11 2 4 6    for(auto value:vec)        cout<<value<<" ";    cout<<endl;    cout<<vec.front()<<endl;  //1    cout<<vec.back()<<endl;  //6    cout<<vec[3]<<endl;  //4    cout<<vec.at(0)<<endl;  //1    vec.pop_back();  //删除最后一个元素    vec.erase(vec.begin()+2);  //删除3    vec.erase(vec.begin(),vec.begin()+2);  //删除1 2    //4 5 10 11 2 4     for(auto value:vec)        cout<<value<<" ";    cout<<endl;    vec.clear();  //删除所有元素    return 0;}

编译时加上-std=c++11来支持那些新特性

0 0