其他分享
首页 > 其他分享> > vector用法

vector用法

作者:互联网

C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组。

vector基本用法:

#include<vector>//头文件
using namespace std;//命名空间
vector<int> Vec;//函数调用
int a;
cin>>a;
Vec.push_back(a);//在尾部加入一个数据a
Vec.pop_back();//删除最后一个数据。
int len=Vec.size();//获取长度

vector常见用法

使用元素

一般使用

Vec[1]; // 使用下标方式(避免使用)
Vec.at(1); // 使用at方式(建议使用)
Vec.front(); // 使用第一个元素
Vec.back(); // 使用最后一个元素

迭代器指针使用:

iterator begin(); // 返回向量头指针,指向第一个元素
iterator end(); // 返回向量尾指针,指向向量最后一个元素的下一个位置

vector<int>::iterator d = vec1.begin();
int d1 = *d;//vec1[0]
vector<int>::iterator e = vec1.end() - 1;
int e1 = *e;//vec1[last]`

增加元素:

vec1.push_back(x); // 在vec1的尾部添加一个元素x(注意:一般可以用emplace_back()代替,效率更高)
vec1.insert(iterator iter, x); // 在vec1的迭代器iter指向元素前增加一个元素x
vec1.insert(iterator iter, int n, x); // 在vec1的迭代器iter指向元素前增加n个元素x
vec1.insert(iterator iter, const_iterator first,const_iterator last); // 在vec1的迭代器iter指向元素前插入另一个相同类型向量的[first, last]间的数据

删除元素:

vec1.pop_back(); // 删除在vec1的最后一个元素
vec1.clear(); // 删除vec1中所有元素
vec1.erase(iterator iter); // 删除vec1中迭代器指向元素
vec1.erase(iterator first,iterator last); // 删除vec1中[first,last]中元素

判断是否为空:

bool empty() const:判断向量是否为空,若为空,则向量中无元素

vector<int> vec1 = { 1, 2, 3, 4, 5 };
bool i = vec1.empty();//输出:false
vector<int> vec2 = {  };
bool j = vec2.empty();//输出:true

vector技巧用法

一维数组去重:

sort(p.begin(),p.end());
p.erase(unique(p.begin(), p.end()), p.end());

unique函数:

头文件:#include<algorithm>
作用: 去除容器或数组中相邻的重复元素(所以在使用之前要先sort)
说明: 这里的去除是指:将重复的元素放到容器的末尾,返回值是去重之后的尾地址。

标签:iterator,元素,iter,用法,vector,Vec,vec1
来源: https://www.cnblogs.com/kingwz/p/15264814.html