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

news2024/11/19 6:43:38

前言

感觉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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1032240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot自动装配原理超详细解析

目录 前言一、什么是SPI&#xff1f;1. JDK中的SPI2. Spring中的SPI2.1 加载配置2.2 实例化 二、Import注解和ImportSelector是什么&#xff1f;1. 代码示例2. 过程解析3. 源码分析 三、Spring Boot的自动装配1.源码分析2.代码示例3.Spring Boot自带的自动装配 四、总结 前言 …

LabVIEW报表生成工具包时出现错误-41106

LabVIEW报表生成工具包时出现错误-41106 使用LabVIEW报表生成工具包创建Excel报告或Word文档时&#xff0c;收到以下错误&#xff1a;Error -41106 occurred at NI_Excel.lvclass:new report subVI.vi ->NI_report.lvclass:New Report.vi -> Export Report With JKI.vi …

【Vue】模块基本语法「上篇」

【Vue】模块基本语法「上篇」 一、插值1.1 文本1.2 v-html1.3数据双向绑定(v-model) 二、指令2.1 v-if|v-else|v-else-if2.2 v-show2.3 v-for2.4 动态参数 三、过滤器3.1 局部过滤器3.2 全局过滤器 四、计算属性&监听属性4.1 计算属性4.2 监听属性 五、案例实操5.1 购物车案…

怒刷LeetCode的第6天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;哈希表 方法二&#xff1a;逐个判断字符 方法三&#xff1a;模拟减法 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;水平扫描法 方法二&#xff1a;垂直扫描法 方法三&#xff1a;分治法 方…

2023-09-22 LeetCode每日一题(将钱分给最多的儿童)

2023-09-22每日一题 一、题目编号 2591. 将钱分给最多的儿童二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数 money &#xff0c;表示你总共有的钱数&#xff08;单位为美元&#xff09;和另一个整数 children &#xff0c;表示你要将钱分配给多少个儿童。 你…

华为OD机试 - 事件推送(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多…

联合作战模式下的信息过滤方法

源自&#xff1a;《指挥信息系统与技术》 作者&#xff1a;马雷鸣&#xff0c;张道伟 “人工智能技术与咨询” 发布 摘要 引言 1 相关工作 2 基于虚词的信息过滤方法 图1 本文方法流程 2.1 云-边-端架构 图2 云-边-端架构 2.2 作战信息特征提取 图3 常用虚词表 2.3 …

数字藏品系统平台怎么样挣钱?

数字藏品系统平台是为用户提供数字艺术品、收藏品、虚拟物品等数字化资产的交易和管理服务的平台。这类平台通常有以下方式来挣钱&#xff1a; 1.手续费&#xff1a;平台可以在用户之间进行数字藏品的买卖交易时收取手续费。这通常是基于交易金额的一定比例或固定费用。这是数字…

华为全联接大会2023 | 尚宇亮:携手启动O3社区发布

2023年9月20日&#xff0c;在华为全联接大会2023上&#xff0c;华为正式发布“联接全球服务工程师&#xff0c;聚合用户服务经验”的知识经验平台&#xff0c;以“Online 在线、Open 开放、Orchestration 协同”为理念&#xff0c;由华为、伙伴和客户携手&#xff0c;共同构建知…

Mysql 按照每小时,每天,每月,每年,不存在数据也显示

文章目录 按照每小时按照每天按照每月 按照每小时 SELECTdate : date_add( date, INTERVAL 1 HOUR ) AS DAY FROM( SELECT date : DATE_ADD( 2023-09-22, INTERVAL - 1 HOUR ) FROM xt_user LIMIT 24 ) t按照每天 SELECTdate : date_add( date, INTERVAL 1 day ) AS DAY FRO…

量子计算基础知识—Part1

1.什么是量子计算机&#xff1f; 量子计算机是基于量子力学原理构建的机器&#xff0c;采用了一种新的方法来处理信息&#xff0c;从而使其具有超强的功能。量子计算机使用Qubits处理信息。 2. 什么是量子系统&#xff1f; 一个量子系统指的是由量子力学规则描述和控制的物理…

计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-图像去噪 [北邮鲁鹏]

目录标题 参考学习链接图像噪声噪声分类椒盐噪声脉冲噪声对椒盐噪声&脉冲噪声去噪使用高斯卷积核中值滤波器 高斯噪声减少高斯噪声 参考学习链接 计算机视觉与深度学习-04-图像去噪&卷积-北邮鲁鹏老师课程笔记 图像噪声 噪声点&#xff0c;其实在视觉上看上去让人感…

2023-9-22 滑雪

题目链接&#xff1a;滑雪 #include <cstring> #include <algorithm> #include <iostream>using namespace std;const int N 310;int n, m; int h[N][N]; int f[N][N];int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1};int dp(int x, int y) {int &v f…

启山智软/一款包含主流商城类型的一款电商中台系统100%开源

文章目录 介绍一、Smart Shop JAVA 微服务电商中台优势二、电商中台包含那些主流商城模式1.S2B2C供应链商城2.B2B2C多商户商城3.B2C单商户商城4.O2O外卖配送商城5.社区团购商城 6.演示地址总结 介绍 想要了解代码规范&#xff0c;学习商城解决方案&#xff0c;点击下方官网链接…

acwing算法基础-chapter01-差分

差分介绍 结论&#xff1a;差分是前缀和的逆运算 举例 一维差分 //一维前缀和 a[i]部分就是一维差分数组 s[i] s[i-1]a[i]; //一维差分 a[i] s[i]-s[i-1];二维差分 //二维前缀和 a[i][j]部分就是一维差分数组 s[i][j] s[i-1][j]s[i][j-1]-s[i-1][j-1]a[i][j]; //二维差分…

Cordova插件开发:集成南方测绘RTK实现高精度卫星定位

文章目录 1.最终效果预览2.页面持续展示获取的坐标3.公共类utilsTools中封装得获取坐标方法4.南方测绘坐标获取封装5.插件js方法封装6.Java方法封装1.最终效果预览 说明:南方测绘RTK设备厂家提供的SDK中封装了蓝牙搜索连接、Cross账号登录等功能,我们通过Cordova插件进一步封…

Python150题day09

③多条件分支 使用input函数接收用户的输入数据&#xff0c;如果用户输入python&#xff0c;则输出90&#xff0c;如果用户输入java.输出95&#xff0c;如果用户输入php&#xff0c;输出85&#xff0c;其他输入&#xff0c;程序输出0 解答&#xff1a; if...elif...else val…

centos 上安装 kafka 与 python 调用

step0: 环境准备 1、 安装jdk 1.8 以上版本 yum -y install java-1.8.0-openjdk.x86_642、 安装配置ZooKeeper wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.2/apache-zookeeper-3.8.2-bin.tar.gz --no-check-certificate tar -zxf apache-zookeeper-3.8.2-bin.t…

首购2元起!CDN与加速特惠专场来啦~

还在为内容分发、加速成本发愁吗&#xff1f;看过来&#xff01;火山引擎边缘云CDN与加速特惠专场来啦&#xff01; 限时活动&#xff1a;首购2元起&#xff0c;新老低至7折&#xff01; 限时优惠&#xff01;错过后悔&#xff01;这波折扣实实在在&#xff01; 首购专区 新…

用户体验测试:确保产品满足用户期望的关键步骤

在当今竞争激烈的市场中&#xff0c;为了确保产品的成功和用户的满意度&#xff0c;用户体验测试变得至关重要。通过系统化地评估产品在用户使用过程中的可用性、便利性和满意度&#xff0c;用户体验测试有助于发现潜在问题并改进产品设计。本文将介绍用户体验测试的关键步骤和…