Fork me on GitHub

C++基础之vector容器初探

C++基础之vector容器初探

1、简介

 vector 是C++标准库类型中的一个类模板, vector 类模板需要指定需要创建的类型T,并实例化之后才能使用实例化的对象。

 

2、需要的库和命名空间

使用 vector 需要添加加 vector 库,和 std 命名空间

#include <vector>
using std::vector;

 

3、定义和初始化 vector 对象

vector<T> v1         // v1是一个空vector,潜在元素是T类型,执行默认初始化
vector<T> v2(v1)   // 实例化了一个vector对象v2,并将v1的所以元素赋给v2
vector<T> v2 = v1  // 与上面一行等价
vector<T> v3(n, val)  // v3包含了n个重复的元素,每个元素值都是val
vector<T> v4            // v4包含了n个重复的执行了值初始化的对象
vector<T> v5{a, b, c...}   // v5包含了初始值个数的元素,每个元素被赋予相应的初始值
vector<T> v5 = {a, b, c...}  // 与上面一行等价

 

3.1、列表初始化对象

vector<string> v1{"a", "an"};

 

3.2、创建指定数量的元素

vector<int> ivec(10, -1);    // 10个int类型的元素,每个都被初始化为-1
vector<string> svec(10, "hi");  // 10个string类型的元素,每个都被初始化为”hi“

 

3.3、列表初始化和指定元素数量的区别

vectot<int> v1(10);   // v1有10个元素,每个的值都是0
vector<int> v1{10};  // v2有1个元素,元素的值是10

vector<int> v3(10, 1);    // v3有10个元素,每个元素的值都是1
vector<int> v4{10, 1};   // v4有2个元素,值分别是10和1 

4、向 vector 对象中添加元素

使用vector的成员函数 push_back 向 vector 对象中添加元素, push_back 负责把一个值当成 vector 对象的尾元素压到 vector 对象的尾部

vector<int> v1  // 创建一个空的vector对象v1
for (int i=0;i<10;i++) {
    v1.push_back(i);    // 从0~9依次将i添加到v1的尾部
}

vector还提供 size() 函数来获取vector对象的元素长度,vector对象也可以向数组一样使用索引/下标来获取元素

 

5、vector与数组的区别

vector比数组更加灵活,相比数组有两个明显的优点:

1)不需要提前规定数组的长度

2)可以使用size()函数来获取数组的长度

 

posted @ 2020-10-26 22:57  小黑子杜  阅读(149)  评论(0编辑  收藏  举报