C++ vector容器的使用

写此文以便需要时查阅

头文件

#include<vector>

初始化

申请一个有length个长度的vector容器(尽量在初始化时指定长度)

vector<type> vec1(int length)

也可以从数组中获得初值

int b[7]={1,2,3,4,5,6,7};
vector<int> vec2(b,b+7);

常用内置函数

vector.assign(iterator1, iterator2)

将两个迭代器范围内的元素赋值给vector,左闭右开

vector<int> vec1, vec2;
//将vec2 0~3的元素赋值给vec1
vec1.assign(vec2.begin(), vec2.begin()+4);

vector.size()

返回vector元素的个数

vector.capacity()

返回vector容量,而非元素个数

vector.reserve(int length)

将vector的容量扩充至length

vector.back()

返回vector最后一个元素

vector.front()

返回vector第一个元素

vector.clear()

清空vector中的元素

vector.empty()

判断vector是否为空。空则返回true,非空返回false

插入操作

vector.push_back(element)

在vector末尾插入一个元素

vector.insert(iterator, element)

在vector迭代器位置插入元素element

vector.insert(iterator, int len, element)

在vector迭代器位置插入len个element元素

vector.insert(iterator, array+a, array+b)

在vector迭代器位置插入数组array从位置a到位置b-1范围的元素(左闭右开)

int b[10] = {0,1,2,3,4,5,6,7,8,9}
vec1.insert(vec1.begin()+1,b+3,b+6);

删除操作

vector.pop_back()

删除vector最后一个元素

vector.erase(iterator1, iterator2)

删除vector迭代器范围的元素,左闭右开

几种常用的算法

需要算法头文件

#include<algorithm>

排序

sort(iterator1, iterator2)

将迭代器范围的元素从小到大排序

int a[4] = {3, 2, 5, 1}
vector<int> vec(a, a+4);
sort(vec.begin(), vec.end());

reverse(iterator1, iterator2)

将迭代器范围的元素倒置,sort排序完后再调用reverse可实现从大到小排序

reverse(vec.begin(), vec.end());

find(iterator1, iterator2, element)

查找迭代器范围内的element元素,若存在返回指向该元素的迭代器指针,不存在则返回一个迭代器指针(该指针比vector.end()大1)

int a[4] = {3, 2, 5, 1};
vector<int> vec(a, a+4);

//元素存在 
vector<int>::iterator index1 = find(vec.begin(), vec.end(), 1);
cout << index1-vec.begin() << endl; //3

//元素不存在 
vector<int>::iterator index2 = find(vec.begin(), vec.end(), 10);
cout << index2-vec.begin() << endl; 

猜你喜欢

转载自blog.csdn.net/Dae_Lzh/article/details/121452046