前言
感觉vector在目前阶段很常用,就总结记录一些vector的用法
方便自己忘记的时候查找
因为是自用,所以我直接放代码了,只说明如何使用,以及一些小的注意点,对于函数具体实现过程,在这篇文章中,不做过多说明
当然,我也给出了一些使用例子,供大家参考
本文参考:
代码
#include<iostream> #include<vector> using namespace std; int main() { vector<int>a, b; //创建向量a和向量b a.assign(b.begin(), b.begin() + 3); //将b的下标为0-2的元素赋给a a.assign(4, 2); //清空a,并向其中存入4个2 a.back(); //返回a的最后一个元素 a.front(); //返回a的第一个元素 int i = 3; a.at(i); //访问下标为i的元素 a.clear(); //清空a中的元素 a.empty(); //判断a是否为空,空则返回true 非空则返回false a.pop_back(); //删除a的最后一个元素 a.erase(a.begin(), a.begin() + 1); //删除从第0个元素到第1个元素 即删除下标为0的元素 //使用erase的例子 /*vector<int>a{ 1,2,3,4,5,6 }; a.erase(a.begin(), a.begin() + 1); for (int ii : a) { cout << ii << endl; }*/ a.push_back(1); //在a的最后一个元素后面放入5 //使用push_back()的例子 //vector<int>a{ 1,2,3,4,5,6 }; //a.push_back(5); //for (int ii : a) //{ // cout << ii << endl; //} a.insert(a.begin(), 5); //在a的下标为0的位置 插入5 剩下的元素统一向后移动一位 //使用insert的例子 /*vector<int>a{ 1,2,3,4,5 }; a.insert(a.begin(), 5); for (int ii : a) { cout << ii << endl; }*/ a.insert(a.begin(), 3, 5); //从a的下标为0的位置开始 插入3个元素 其值为5 //使用insert的例子 /*vector<int>a{ 1,2,3,4,5 }; a.insert(a.begin(), 3, 5); for (int ii : a) { cout << ii << endl; }*/ vector<int>b = { 10,9,8,7,6,5,4 }; int c[7] = { 11,12,13,14,15,16,17 }; a.insert(a.begin(), b.begin() + 3, b.begin() + 6); //在a下标为0的位置,将b从下标为3的位置开始到下标为6的元素插入 a.insert(a.begin(), c[2], c[4]); //在a下标为0的位置,将c从下标为2到下标为4的元素插入 //使用insert的例子 //vector<int>a = { 1,2,3,4 }; vector<int>b = { 10,9,8,7,6,5,4 }; //int c[7] = { 11,12,13,14,15,16,17 }; //a.insert(a.begin(), b.begin() + 3, b.begin() + 6); //for (int ii : a) //{ // cout << ii << endl; //} //a.insert(a.begin(), c[2], c[4]); //for (int ii : a) //{ // cout << ii << endl; //} a.size(); //返回a的元素个数 a.capacity(); //返回a在内存中总共可以容纳的元素个数 a.resize(10); //将a现有的元素个数调整为10,多则删,少则补 值随机 a.resize(10, 2); //将a现有的元素个数调整为10,多则删,少则补 值为2 a.reserve(100); //将a的容量扩充至100 a.swap(b); //交换a和b中的所有元素 return 0; }
注意点
注释1
vector<int>a = { 1,2,3,4 }; int c[7] = { 11,12,13,14,15,16,17 }; a.insert(a.begin(), c[2], c[4]); for (int ii : a) { cout << ii << endl; }
当我们这么编写代码时,我们的本意是将从c[2] 到c[4]的元素插入a的第一个元素的位置
但运行结果是:
我们可以知道,如果要连续插入到不是容器中的元素时,是无法实现我们想要的目的的
常见用法
对于vector我们在做题时,通常会用到以下函数
sort排序
reverse逆置
find查找
以及用copy实现两个向量之间的复制
在此只是提一嘴,不做详细介绍,相信大家基本都会使用这些函数
结语
对于vector的常见用法的介绍和学习到这里就结束了,希望对你有帮助,我们下篇文章见~
今天先简单水一篇(bushi