一、初始化vector
1、动态初始化vector
使用vector时,我们需要先将其初始化,vector可以有多种初始化方式。其中动态初始化是指我们需要在程序运行时才能确定vector的大小,可以通过reserve()函数来提前分配空间,如下所示:
vectorv1; v1.reserve(100); //提前分配空间
2、静态初始化vector
另外一种方式是静态初始化,就是在编写程序时就确定vector的大小和初始值。这里我们需要注意的是,静态初始化在初始时会对所有元素进行初始化,因此当我们要进行大量数据初始化时,建议使用动态初始化,避免浪费时间和空间。
vectorv2(10, 0); //初始化大小为10,全部赋值为0
二、添加单个元素
1、使用push_back()
添加单个元素最常用的方法就是使用push_back()函数,它可以将元素添加到vector末尾。如下所示:
vectorv; v.push_back(1); v.push_back(2); v.push_back(3);
2、使用insert()
除了使用push_back()函数,我们还可以使用insert()函数来添加单个元素。insert()函数的第一个参数是要插入的位置,第二个参数是插入的元素值,如下所示:
vectorv; v.insert(v.begin(), 1); //在开头插入元素1 v.insert(v.end(), 2); //在末尾插入元素2
三、添加多个元素
1、使用push_back()和循环
当需要添加多个元素时,可以使用循环结构配合push_back()函数来实现。如下所示:
vectorv; for(int i=0; i<10; i++){ v.push_back(i); }
2、使用insert()和迭代器
类似于单个元素的添加方式,我们也可以使用insert()函数和迭代器配合来添加多个元素。如下所示:
vectorv; vector a(10, 1); v.insert(v.begin(), a.begin(), a.end()); //在开头插入a中的所有元素 v.insert(v.end(), a.begin(), a.end()); //在末尾插入a中的所有元素
四、添加已知容器的所有元素
当我们已经有了一个容器,需要将其所有元素添加到另一个容器中时,可以使用assign()函数或者insert()函数。如下所示:
vectorv1{1,2,3,4}; vector v2; v2.assign(v1.begin(), v1.end()); //使用assign()函数 v2.insert(v2.begin(), v1.begin(), v1.end()); //使用insert()函数
五、总结
vector作为STL中常用的容器,其添加元素的方法多种多样。在实际开发中,我们需要根据不同情况选择合适的添加方式,以达到高效、简便的目的。