STL(八)——向量vector

tech2026-02-23  1

向量Vector

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。 简单理解为:向量Vector是一个能够存放任意类型的动态数组,可以动态改变大小。

常见形式为:vector<datatype> v (尖括号中为元素类型名,它可以是任何合法的数据类型)

1.初始化

vector a(10); //定义了10个整型元素的向量,没有给出初值,其值是不确定的。vector a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1vector a(b); //用b向量来创建a向量,整体复制性赋值vector a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素int b[7]={1,2,3,4,5,9,8}; vector a(b,b+7); //从数组中获得初值

2.vector的一些操作:

vector<T>v1;

判空: v1.empty(); //如果为空返回true,不为空返回false。

返回元素个数: v1.size();

插入元素: v1.push_back(t); //在v1的最后一个元素后新增一个类型为t的元素。

向量间赋值: v1=v2; //把v2元素赋值给v1。

判断等值: v1==v2; //判断v1中元素的值是否等于v2,是就返回true。

3.算法

(1)sort(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列

(2)reverse(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1

(3)copy(a.begin(),a.end(),b.begin()+1); //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素

(4)find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置

4.输入输出

A.元素的输入和访问可以像操作普通的数组那样, 用cin>>进行输入,cout<<a[n]进行输出:

#include<bits/stdc++.h> using namespace std ; int main() { vector<int> a(3, 0) ; //大小为3初值为0的向量a cin >>a[2] ; for (int i = 0; i < a.size(); i++) cout << a[i] << " " ; }

B.也可以用迭代器进行输出

#include<bits/stdc++.h> using namespace std ; int main() { vector<int> a(3, 0) ; //大小为3初值为0的向量a cin >>a[2] ; vector<int>::iterator it; for (it = a.begin(); it != a.end(); it++) cout << *it; }
最新回复(0)