您的位置:

vector初始化赋值详解

一、基础概念

vector是一个封装了动态大小数组的顺序容器(Sequence Container)。与C-style数组不同,它能够根据需要自动扩展,它是连续存储的,与数组一样高效。vector使用很方便,可以通过初始化、push_back、insert等操作进行元素的插入和删除。vector初始化赋值时有很多方法,下面将一一介绍。

二、初始化赋值

1. 默认初始化


    vector
    v;   //v为空vector

   

默认初始化时,vector中并没有任何元素,需要使用push_back、insert等函数添加元素。

2. 初始化指定数目的元素


    vector
    v1(5);   //v1包含5个初始化元素,每个元素默认值为0
    vector
     v2(6, 2);   //v2包含6个初始化元素,每个元素的值都为2

    
   

使用含有元素数量的构造函数可以指定vector中元素的数量,并且可以为每个元素指定初始值。如上例所示,v1包含5个元素,每个元素的初始值都为0;v2包含6个元素,每个元素的初始值都为2。

3. 使用数组初始化


    int arr[5] = {1, 2, 3, 4, 5};
    vector
    v(arr, arr + 5);   //从数组arr中复制5个元素到v中

   

可以使用数组的元素来初始化vector,只需将数组的起始和结束迭代器传递给vector即可。如上例所示,使用数组arr的元素对vector v进行初始化。

4. 使用迭代器初始化


    vector
    v3{3, 1, 4};
    vector
     v4(v3.begin(), v3.end());   //使用迭代器将v3的值复制给v4

    
   

可以使用迭代器来初始化vector,只需将起始和结束迭代器传递给vector即可。如上例所示,使用v3的迭代器将v3的值复制给v4。

5. 列表初始化


    vector
    v5 = {1, 2, 3};   //列表初始化

   

可以通过列表初始化来初始化vector,只需使用花括号{}括起来,列表中的元素用逗号分隔即可。如上例所示,用列表初始化的方式初始化vector v5。

三、总结

本文详细介绍了vector的初始化赋值方法,包括默认初始化、初始化指定数目的元素、使用数组初始化、使用迭代器初始化、列表初始化等。使用vector,开发者可以很方便地添加、删除元素,实现数据结构的动态变化。我们要根据实际的需求,选择不同的初始化方式,使得代码更加简洁和高效。