【C++】vector中的常见函数和使用

简介: 【C++】vector中的常见函数和使用

前言

感觉vector在目前阶段很常用,就总结记录一些vector的用法

方便自己忘记的时候查找

因为是自用,所以我直接放代码了,只说明如何使用,以及一些小的注意点,对于函数具体实现过程,在这篇文章中,不做过多说明

当然,我也给出了一些使用例子,供大家参考

本文参考:

C++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


相关文章
|
3天前
|
存储 算法 C++
C++一分钟之-容器概览:vector, list, deque
【6月更文挑战第21天】STL中的`vector`是动态数组,适合随机访问,但插入删除非末尾元素较慢;`list`是双向链表,插入删除快但随机访问效率低;`deque`结合两者优点,支持快速双端操作。选择容器要考虑操作频率、内存占用和性能需求。注意预分配容量以减少`vector`的内存重分配,使用迭代器而非索引操作`list`,并利用`deque`的两端优势。理解容器内部机制和应用场景是优化C++程序的关键。
18 5
|
1天前
|
C++
C++语言如何利用函数来处理数组
C++语言如何利用函数来处理数组
|
4天前
|
C++ 容器
【C++】拷贝构造函数、拷贝赋值函数与析构函数
【C++】拷贝构造函数、拷贝赋值函数与析构函数
17 6
|
1天前
|
编译器 程序员 语音技术
C++的超20种函数类型分享
C++超20种函数类型:编程语言规定规则,编译器实现预定规则
|
1天前
|
存储 安全 算法
C++的内置数组和STL array、STL vector
C++的内置数组和STL array、STL vector
|
1天前
|
C++
C++函数的返回数据写法的思路
C++函数使用尾置返回类型、decltype、类型别名返回一个数组引用
|
2天前
|
关系型数据库 MySQL 测试技术
技术分享:深入C++时间操作函数的应用与实践
技术分享:深入C++时间操作函数的应用与实践
8 1
|
5天前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
23 2
|
10天前
|
存储 算法 程序员
【C++进阶】深入STL之vector:构建高效C++程序的基石
【C++进阶】深入STL之vector:构建高效C++程序的基石
16 1
|
13天前
|
C++
C++中函数模版与类模版
C++中函数模版与类模版
22 4