目录:
1.vector的定义和特性
vector和pair一样,是一个模板类,在功能上不同。可以对比学习:
pair:模板类,用于存储两个值的组合,可以不同类型
vector:模板类,用于存储一系列相同的元素,类似数组,要求元素类型相同
2.几种vector的常用函数
push_back():在末尾添加元素,昨天讲过,将要添加的元素作为函数的参数
例:
num.push_back(2);
pop_back():删除末尾元素,没有参数
num.pop_back();
size():获取vector容器中的元素数量,没有参数
num.size();
empty():检查vector是否为空,没有参数
if(num.empty())
{
cout<<"vector为空";
}
resize():调整vector的大小,可以有两个参数,resize(m,n),m表示容器的大小,n表示初始值(所有)
v.resize(5, 10);
insert():插入元素,有两个参数,第一个表示,插入的位置(注意是在插入的位置上,如p.begin()+3,就是在下标为3的位置上插入),第二个表示要插入的元素
v.insert(v.begin()+2,3);
//表示在下标为2的元素位置上插入3
迭代器:即v.begin()和v.end(),用于遍历、标记元素,太简单,不写例子了
3.vector的排序去重功能
主要掌握sort()、erase()、unique()的使用,例子在代码实例中给出。在例子中关注sort()、erase()、unique()三者的用法。
4.代码示例
#include<bits/stdc++.h>
using namespace std;
int main()
{
//初始化,插入数据
vector<int> p={1,1,1};
p.push_back(5);
p.push_back(9);
p.push_back(6);
p.push_back(4);
p.push_back(7);
p.push_back(3);
p.push_back(2);
for(auto &i:p)
{
cout<<" "<<i;
}
//排序
cout<<endl;
sort(p.begin(),p.end());
for(auto &i:p)
{
cout<<" "<<i;
}
cout<<endl;
//删除元素
p.pop_back();
p.pop_back();
for(auto &i:p)
{
cout<<" "<<i;
}
cout<<endl;
p.size();
vector<int> s;
s.resize(5,10);
for(auto &i:s)
{
cout<<" "<<i;
}
cout<<endl;
p.insert(p.begin()+3,100);
for(auto &i:p)
{
cout<<" "<<i;
}
cout<<endl;
//排序、去重
sort(p.begin(),p.end());//不用在前面写p
for(auto &i:p)
{
cout<<" "<<i;
}
cout<<endl;
auto num=unique(p.begin(),p.end());//不用在前面写p
p.erase(num,p.end());//需要在前面写p
for(auto &i:p)
{
cout<<" "<<i;
}
cout<<endl;
return 0;
}
运行结果: