vector容器

vector容器
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
void print(vector<int> vec){
    vector<int>::iterator iter = vec.begin();
    for(; iter != vec.end(); iter++)
        cout << *iter << ' ';
    cout << endl;
}
int main(){

    //初始化
    vector<int> veco;
    const int size = 8;
    const int value = 1024;
    vector<int> vec1(size);
    vector<int> vec2(size, value);

    int ia[4] = {0, 1, 1, 2};
    vector<int> vec3(ia, ia+4);
    vector<int> vec4(vec3);
    vector<int> vec5(vec3.begin()+1, vec3.end()-1);
    print(vec5);
    cout << endl;
    print(vec1);
    print(vec2);
    print(vec3);
    print(vec4);

    //增加元素
    vector<int> vec;
    vec.push_back(1);
    vec.push_back(11);
    vec.push_back(111);
    vec.push_back(2);
    vec.push_back(22);
    vec.push_back(222);
    cout << *vec.begin() << ' ' << *(vec.end()-1) << endl;

    //搜索
    vector<int>::iterator iter;
    iter = find(vec.begin(), vec.end(), 2);
    if(iter == vec.end())
        cout << "没有找到"  << endl;
    else
        cout <<  "找到了"  << *iter << endl;

    //访问,vec.at(下标)
    vec.pop_back();
    print(vec);
    cout << "数组实际大小 " << vec.size() << endl;
    cout << "数组容量 " << vec.capacity() << endl;
    cout << "判断空? " << vec.empty() << endl;
    cout << "传回数据 " << vec.at(1) << endl;
    cout << "传回数据 " << vec.at(4) << endl;
    cout << "传回数据 " << vec[4] << endl;

    //插入,(pos, x),(pos, n, x),(pos, pos1, pos2)
    vec.insert(vec.begin(),333);
    print(vec);
    vec.insert(vec.begin()+1,2,444);
    print(vec);
    vec.insert(vec.begin()+3,vec3.begin(), vec3.end());
    print(vec);

    //删除,(pos),(pos1, pos2)
    cout << endl;
    vec.erase(vec.begin()+1);
    print(vec);
    vec.erase(vec.begin()+1, vec.begin()+3);
    print(vec);
    cout << endl;

    //交换
    cout << endl;
    swap(vec1, vec2);
    print(vec1);
    print(vec2);
    cout << endl;

    //赋值,(n, val)
    vec.assign(20,2);
    print(vec);
    vec.assign(vec3.begin(), vec3.end());
    print(vec);

    //重定义容量,(new_size, x)
    vec.resize(30);
    print(vec);
    vec.resize(10);
    print(vec);
    vec.resize(20,1);
    print(vec);

    //清空
    vec.clear();
    vec.push_back(1);
    print(vec);

    return  0;
}
#include "iostream"
#include "vector"
#include "algorithm"
#include "string"
using namespace std;
void print(vector<int> vec){
    vector<int>::iterator iter = vec.begin();
    for(; iter != vec.end(); iter++)
        cout << *iter << ' ';
    cout << endl;
}
void print(vector<char> vec){
    vector<char>::iterator iter = vec.begin();
    for(; iter != vec.end(); iter++)
        cout << *iter << ' ';
    cout << endl;
}
int main(){

    //初始化
    string id[] = {"abc","ac","ab"};
    int ia[] = {2,4,5,6,3,1,7};
    char ib[] = {'b','a','d','c'};
    string ic = "badc";
    const int size = 8;
    const int value = 1024;
    vector<int> vec(ia, ia+7);
    vector<char> vecchar(ic.begin(), ic.end());
    vector<char> vecchar2(&ic[0], &ic[4]);
    vector<string> vecstring;
    vecstring.push_back("abc");
    vecstring.push_back("ac");
    vecstring.push_back("ab");

    //字典序排序
    for (auto &item : vecstring)
        cout << item << ' ';
    cout << endl;
    sort(vecstring.begin(),vecstring.end());
    for (auto &item : vecstring)
        cout << item << ' ';
    cout << endl;
    print(vecchar);
    print(vec);
    sort(vec.begin(),vec.end());
    sort(vecchar.begin(),vecchar.end());
    print(vecchar);
    print(vec);
    for (auto &item : vecchar)
        cout << item;
    cout << endl;
    for (auto &item : vec)
        cout << item;

    //逆序翻转
    reverse(vec.begin(), vec.end());
    cout << endl;
    for (auto &item : vec)
        cout << item;
    reverse(vec.begin()+1, vec.end()-1);
    cout << endl;
    for (auto &item : vec)
        cout << item;
    return  0;
}
#include "iostream"
#include "vector"
#include "algorithm"
#include "string"
using namespace std;
int main(){

    //vec1 > vec2是按字典序判断的
    int a1[] = {1,3,5,7,9,12};
    int a2[] = {1,3,5,7,9,11,12};
    vector<int> vec1(a1, a1+6);
    vector<int> vec2(a2, a2+7);
    for (auto &item : vec1)
        cout << item << ' ';
    cout << endl;
    for (auto &item : vec2)
        cout << item << ' ';
    cout << endl;
    cout << (vec1 > vec2);
    return  0;
}


posted @ 2021-12-06 21:31  ayanyuki  阅读(75)  评论(0)    收藏  举报