一、Vector的几种初始化方式

(1)默认初始化,vector为空。

vector<int> Vec;

(2)拷贝初始化

vector<int> Vec2(Vec);
<==>
vector<int> Vec2 = Vec;

(3)范围拷贝

vector<int> Vec(Vec2.begin(), Vec2.begin()+3);  //将Vec2[0]到Vec2[2]的元素赋给Vec

(4)列表初始化

vector<int> Vec{1, 2, 3, 4};

(5)指定值初始化

Vector<int> Vec(5, 1);  //Vec被初始化为包含5个1的int型数组

(6)数组地址初始化

int a[5] = {1,2,3,4,5};
vector<int> Vec(a, a+5);

二、增添元素

(1)向vector尾部增加一个元素

void push_back(const t& X);

(2)向vector迭代器指向元素前插入一个元素

iterator insert(iterator iter, const T& x);

(3)向vector迭代器指向元素前插入n个相同元素

interator insert(iterator iter, int n, const T& x);

(4)向vector迭代器指向元素前插入一个向量的[first, last)

iterator insert(iterator iter, const_iterator first, const_iterator last)

三、删除元素

(1)删除vector中最后一个元素

void pop_back();

(3)删除vector中iter指向的元素

iterator erase(iterator iter);

(2)删除vector中[first, last)元素

iterator erase(iterator first, iterator last);

四、遍历vector

(1)通过下标遍历

for(int i = 0; i < vec.size(); i++){
    cout<<vec[i]<<"\t";
}

(2)通过迭代器遍历

for(auto iter = vec.begin(); iter != vec.end(); iter++){
    cout<<(*iter)<<"\t";
}

五、vector构造二维数组

5.1 初始化

(1)使用push_back函数

std::vector<std::vector<int> > vec;

    std::vector<int> v1;
    v1.push_back(1);
    v1.push_back(1);
    v1.push_back(1);

    std::vector<int> v2;
    v2.push_back(1);
    v2.push_back(1);
    v2.push_back(1);

    vec.push_back(v1);
    vec.push_back(v2);

(2)先定义好二维数组的结构,如5x3,然后再赋值

std::vector<std::vector<int> > vec(5);
    for(auto iter = vec.begin(); iter != vec.end(); iter++){
        iter->resize(3);
    }
    for(int i = 0; i < vec.size(); i++){
        for(int j = 0; j < vec[0].size(); j++){
            vec[i][j] = 1;
        }
    }

5.2 遍历二维数组

(1)迭代器

for(auto iter = vec.begin(); iter != vec.end(); iter++){
        auto temp_iter = *iter;
        for(auto it = temp_iter.begin(); it != temp_iter.end(); it++){
            cout<<*it<<"\t";
        }
        cout<<endl;
    }

(2)下标

for(int i = 0; i < vec.size(); i++){
        for(int j = 0; j < vec[0].size(); j++){
            cout<<vec[i][j]<<"\t";
        }
        cout<<endl;
    }
Last modification:October 3rd, 2020 at 08:15 pm
如果觉得我的文章对你有用,请随意赞赏