介绍:vector是一个动态数组,可以根据需要自动调整大小,在添加和删除元素时,可以使用迭代器对其进行访问和操作。
头文件:
#include<vector>
#include<bits/stdc++.h>//或者万能头
vector<int>v; //定义一个名叫v的int类型的vector容器
v.push_back(11); //在vector容器的最后面插入一个元素11
v.pop_back(); //删除vector容器里面的最后一个元素
v.insert(pointer,2); //在pointer迭代器所指的元素前面插入一个值为2的元素
v.insert(pointer,3,4); //在pointer迭代器所指的元素前面插入3个4
假设初始容器里面[1,2,5,8,3,2];
v.erase(v.begin()); //容器变为[2,5,8,3,2]
v.erase( v.begin( ) + 1, v.begin( ) + 4 ); //容器变为[1,3,2]
int num=v.size(); //返回vector容器中元素的数量
int num=vector(0); //返回vector容器的第一个元素,从0到v.size()-1
vector<int>().swap(v); //清空名叫v的vector容器的所有元素
v.empty(); //检测vector容器是否为空,如果为空,返回真
sort(v.begin(),v.end()); //对vector容器所有元素进行排序
sort(v.begin(),v.begin()+3) //对前三个元素进行排序
struct node{
string a;
int b;
};
vector<node>v; //定义一个名叫v的node类型的vector容器
node stu;
stu.a="liuyue";
stu.b=2;
v.push_back(stu); //将node类型的变量stu压入容器
v.push_back({"liuyue",2});//与上面等价
vector<int>v(100,2); //定义一百个元素值全为2的vector容器
**********************************************
无敌的一个操作:
v.insert(upper_bound(v.begin(), v.end(), x), x);
首先upper_bound函数返回的是一个迭代器,是指向第一个大于x的元素的迭代器,如果没有大于x的迭代器,那么就返回v.end()。注意这里的vector容器必须是单调的,不然就没有任何意义。那么上面这段代码的意思是在第一个大于x的元素前面插入一个值为x的元素,这样就保证了vector容器里面元素的单调性。