您的位置:

深入探析vector添加元素

一、初始化vector

1、动态初始化vector

使用vector时,我们需要先将其初始化,vector可以有多种初始化方式。其中动态初始化是指我们需要在程序运行时才能确定vector的大小,可以通过reserve()函数来提前分配空间,如下所示:

vector v1;
v1.reserve(100); //提前分配空间

  

2、静态初始化vector

另外一种方式是静态初始化,就是在编写程序时就确定vector的大小和初始值。这里我们需要注意的是,静态初始化在初始时会对所有元素进行初始化,因此当我们要进行大量数据初始化时,建议使用动态初始化,避免浪费时间和空间。

vector v2(10, 0); //初始化大小为10,全部赋值为0

  

二、添加单个元素

1、使用push_back()

添加单个元素最常用的方法就是使用push_back()函数,它可以将元素添加到vector末尾。如下所示:

vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);

  

2、使用insert()

除了使用push_back()函数,我们还可以使用insert()函数来添加单个元素。insert()函数的第一个参数是要插入的位置,第二个参数是插入的元素值,如下所示:

vector v;
v.insert(v.begin(), 1); //在开头插入元素1
v.insert(v.end(), 2); //在末尾插入元素2

  

三、添加多个元素

1、使用push_back()和循环

当需要添加多个元素时,可以使用循环结构配合push_back()函数来实现。如下所示:

vector v;
for(int i=0; i<10; i++){
    v.push_back(i);
}

  

2、使用insert()和迭代器

类似于单个元素的添加方式,我们也可以使用insert()函数和迭代器配合来添加多个元素。如下所示:

vector v;
vector
    a(10, 1);
v.insert(v.begin(), a.begin(), a.end()); //在开头插入a中的所有元素
v.insert(v.end(), a.begin(), a.end()); //在末尾插入a中的所有元素

   
  

四、添加已知容器的所有元素

当我们已经有了一个容器,需要将其所有元素添加到另一个容器中时,可以使用assign()函数或者insert()函数。如下所示:

vector v1{1,2,3,4};
vector
    v2;
v2.assign(v1.begin(), v1.end()); //使用assign()函数
v2.insert(v2.begin(), v1.begin(), v1.end()); //使用insert()函数

   
  

五、总结

vector作为STL中常用的容器,其添加元素的方法多种多样。在实际开发中,我们需要根据不同情况选择合适的添加方式,以达到高效、简便的目的。