当前位置: 首页 > news >正文

常见容器的方法

常见容器

  • 向量 (vector)
    • 常用方法
    • 代码实例
  • 列表 (list)
    • 常用方法
  • 集合 (set)
    • 常用方法
  • 映射 (map)
    • 方法

向量 (vector)

常用方法

vector::push_back(): 将元素插入向量尾部。
vector::pop_back(): 弹出向量尾部的元素。
vector::insert(): 在指定位置插入元素。
vector::erase(): 删除指定位置的元素。
vector::size(): 返回向量中元素的个数。
vector::empty(): 判断向量是否为空。
vector::clear(): 清空向量中的元素。
vector::begin(): 返回向量的第一个元素的迭代器。
vector::end(): 返回向量的最后一个元素后面一个位置的迭代器。

代码实例


#include <vector>
#include <iostream>using namespace std;int main() {vector<int> v = {1, 2, 3};v.push_back(4); // 向向量尾部插入元素v.insert(v.begin() + 1, 5); // 在指定位置插入元素v.erase(v.begin() + 2); // 删除指定位置的元素for (auto i : v) {cout << i << " ";} // 输出 1 5 2 4cout << "Size: " << v.size() << endl; // 输出 Size: 4v.clear(); // 清空向量中的元素cout << "Empty: " << v.empty() << endl; // 输出 Empty: 1return 0;
}

列表 (list)

常用方法

list::push_back(): 将元素插入列表尾部。
list::push_front(): 将元素插入列表头部。
list::pop_back(): 弹出列表尾部的元素。
list::pop_front(): 弹出列表头部的元素。
list::insert(): 在指定位置插入元素。
list::erase(): 删除指定位置的元素。
list::size(): 返回列表中元素的个数。
list::empty(): 判断列表是否为空。
list::clear(): 清空列表中的元素。
list::begin(): 返回列表的第一个元素的迭代器。
list::end(): 返回列表的最后一个元素后面一个位置的迭代器。

#include <list>
#include <iostream>using namespace std;int main() {list<int> l = {1, 2, 3};l.push_back(4); // 向列表尾部插入元素l.push_front(5); // 向列表头部插入元素l.erase(l.begin() + 2); // 删除指定位置的元素for (auto i : l) {cout << i << " ";} // 输出 5 1 3 4cout << "Size: " << l.size() << endl; // 输出 Size: 4l.clear(); // 清空列表中的元素cout << "Empty: " << l.empty() << endl;}

集合 (set)

常用方法

set::insert(): 插入元素。
set::erase(): 删除指定元素。
set::size(): 返回集合中元素的个数。
set::empty(): 判断集合是否为空。
set::clear(): 清空集合中的元素。
set::begin(): 返回集合的第一个元素的迭代器。
set::end(): 返回集合的最后一个元素后面一个位置的迭代器。

#include <set>
#include <iostream>using namespace std;int main() {set<int> s = {1, 2, 3};s.insert(4); // 插入元素s.erase(2); // 删除指定元素for (auto i : s) {cout << i << " ";} // 输出 1 3 4cout << "Size: " << s.size() << endl; // 输出 Size: 3s.clear(); // 清空集合中的元素cout << "Empty: " << s.empty() << endl; // 输出 Empty: 1return 0;
}

映射 (map)

方法

map::insert(): 插入键值对。
map::erase(): 删除指定键对应的值。
map::find(): 查找指定键对应的值。
map::size(): 返回映射中键值对的个数。
map::empty(): 判断映射是否为空。
map::clear(): 清空映射中的键值对。
map::begin(): 返回映射的第一个键值对的迭代器。
map::end(): 返回映射的最后一个键值对后面一个位置的迭代器。

#include <map>
#include <iostream>using namespace std;int main() {map<string, int> m = {{"A", 1}, {"B", 2}, {"C", 3}};m.insert({"D", 4}); // 插入键值对m.erase("B"); // 删除指定键对应的值auto it = m.find("A"); // 查找指定键对应的值if (it != m.end()) {cout << "A: " << it->second << endl; // 输出 A: 1}for (auto p : m) {cout << p.first << ": " << p.second << endl;} // 输出 A: 1 C: 3 D: 4cout << "Size: " << m.size() << endl; // 输出 Size: 3m.clear(); // 清空映射中的键值对cout << "Empty: " << m.empty() << endl; // 输出 Empty: 1return 0;
}

以上是常用的 STL 容器及其常用方法的介绍和示例代码。使用 STL 容器能够大大简化程序的开发和维护,建议在学习 C++ 的过程中深入学习和掌握。

相关文章:

常见容器的方法

常见容器 向量 (vector)常用方法代码实例 列表 (list)常用方法 集合 (set)常用方法 映射 (map)方法 向量 (vector) 常用方法 vector::push_back(): 将元素插入向量尾部。 vector::pop_back(): 弹出向量尾部的元素。 vector::insert(): 在指定位置插入元素。 vector::erase():…...

【Linux】线程

1.理解地址空间和页表 1.地址空间是进程能够看到的资源窗口 2.页表决定进程真正拥有的资源情况 3.合理的对地址空间和页表进行资源划分就可以对一个进程的所有资源进行划分&#xff1a;过地址空间分为栈区、堆区…通过页表映射到不同的物理内存。 在32位平台下&#xff0c;…...

ASP.NET Core MVC 从入门到精通之wwwroot和客户端库

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…...

Oracle OCI 修改 Compute Instance Hostname

Oracle OCI 修改 Compute Instance Hostname Oracle Linux 7 及之后的版本 Oracle Linux 7 及之后的版本 1, Update the /etc/hostname file with below command. hostnamectl set-hostname <new name>2, Edit the oci configuration file for hostnames as given belo…...

垃圾收集算法面试总结

垃圾收集算法 标记 - 清除算法 首先标记出所有需要被回收的对象&#xff0c;标记完后统一回收所有被标记的对象。 后续的收集算法都是基于这种思路并对其不足进行改进而得到的。 这种方法主要有两个缺点&#xff1a; 一个是效率问题&#xff0c;标记和清除两个过程的效率都…...

grep替换指定字符串方法

在 Linux 命令行中&#xff0c;可以使用 grep 命令来查找匹配某个模式的字符串&#xff0c;并将其替换为另一个字符串。具体方法如下&#xff1a; grep -rl <pattern> <directory> | xargs sed -i s/<old_string>/<new_string>/g其中&#xff0c;<…...

主从模式、哨兵模式、集群模式(cluster)

主从模式、哨兵模式、集群模式&#xff08;cluster&#xff09; redis 实现高可用的方式分为 主从模式、哨兵模式、集群模式&#xff08;cluster&#xff09; 1. 主从模式&#xff08;又称为主从复制&#xff09; 表现为1个主节点&#xff0c;多个从节点&#xff0c;主节点负…...

题目3180:蓝桥杯2023年第十四届省赛真题-互质数的个数======及探讨互质专题

原题链接 https://www.dotcpp.com/oj/problem3162.html 想直接看题解的&#xff0c;跳转到第三次尝试即可。 已AC。 解析&#xff1a; &#xff08;1&#xff09;首先大家要知道什么叫互质&#xff1a; 以及它们的性质&#xff1a; 欧拉函数 在数论中&#xff0c;对正整…...

Java 文件操作

字符流-Writer和Reader用于读取文本-BufferedReader(new FileReader("path")) 读取文本文件-BufferedWriter(new FileWriter("path")) 写入到文本文件 字节流-InputStream和OutputStream图片、二进制文件-BufferedInputStream(new FileInputStream(new F…...

二叉树OJ题(C++实现)

文章目录 1.二叉树的层序遍历2. 二叉树的最近公共祖先3.二叉搜索树与双向链表4.从前序与中序遍历序列构造二叉树 1.二叉树的层序遍历 二叉树的层序遍历 OJ连接 主要思路是借助一个队列&#xff0c;将每一层的数据以size统计&#xff0c;当size为0时说明该层数据已经输入完&…...

grep -nr 命令查询字符串方式

grep -nr “搜索内容” 文件路径 其中&#xff1a; -n&#xff1a;显示行号-r&#xff1a;递归查找子目录中的文件“搜索内容”&#xff1a;要搜索的内容文件路径&#xff1a;要搜索的文件路径&#xff0c;可以是单个文件或目录路径&#xff08;将会递归搜索该目录下的所有文…...

AgentAI+ChatGPT给出答案-为什么即时通讯需要心跳

序言 人工智能ChatGpt 结合系统化的问题拆解, 现在已经能够进行问题的拆解与自问自答, 预计未来很多的脑力工作要被释放了, 作为即时通讯的开发人员, 我问问专业的问题 为什么即时通讯需要心跳 先看产品界面与使用结果 问题拆解过程 执行任务1: 概念搜索 “Executing “Res…...

跨平台跨端的登录流程及其安全设计

跨平台跨端的登录流程及其安全设计 目录 跨平台跨端的登录流程及其安全设计 一、登录流程 1.1、登录流程时序图 1.2、三方App 登录 1.3、请求的路由守卫 二、注册流程 2.1、注册流程时序图 2.2、多因素认证 2.3、自动跳转登录页面 三、涉及的技术与安全 3.1、用户…...

如何在Java中创建临时文件?

在Java程序中&#xff0c;有时需要创建临时文件来暂存数据或者执行某些操作。Java提供了许多方式来创建临时文件。在本教程中&#xff0c;我们将介绍如何使用Java标准库来创建临时文件。 一、使用File.createTempFile()方法 Java标准库中的File类提供了createTempFile()方法来…...

Vue表单基本操作-收集表单数据

收集表单数据 使用vue中的v-model收集表单里面的数据&#xff0c;不同的表单元素配合v-model会有不同的写法和技巧 本次的表单元素包括&#xff1a;文本框&#xff0c;单选&#xff0c;多选&#xff0c;下拉框&#xff0c;文本域 编写表单元素 首先编写表单元素&#xff0c;…...

Android 一个获取网址时间的Demo

Android 一个获取网址时间的Demo 文章目录 Android 一个获取网址时间的Demo通过一个网址获取时间的代码关于Android NTP 时间Android 同步时间代码 前段时间有个客户想用局域网同步Android 设备的时间&#xff0c;开发后把这个demo分享一下。 效果&#xff1a; 这里也获取了阿…...

ijkplayer解码流程源码解读

ijkplayer是一款基于ffmpeg的在移动端比较流行的开源播放器。FFmpeg是一款用于多媒体处理、音视频编解码的自由软件工程&#xff0c;采用LGPL或GPL许可证。 要想理解ijkplayer源码&#xff0c;首先得知道视频播放器的基本原理。 视频播放器播放一个互联网上的视频文件&#xf…...

2023年值得关注的3个品牌趋势,帮你弯道超车

2023年&#xff0c;大环境开放&#xff0c;压抑三年的消费蓄势待发&#xff0c;品牌如何唤醒消费者的、热情成了重中之重的大事。 春风和煦&#xff0c;万物生长。又到了各类品牌、各位营销人踌躇满志、斗志昂扬的时候了&#xff0c;浅析一下2023品牌宣传趋势&#xff0c;抓住…...

软考-高级项目管理(二十)

第20章 高级项目管理 (P572考0-2分选择 性价比很低) 在项目集管理中涉及的相关角色主要包括: 项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人 1.项目集发起人 项目集发起人和收益人是负责承诺将组织的资源应用于项目集&#xff0c;并致力于使项目集取得…...

RTMP协议深度解析:从原理到实践,掌握实时流媒体传输技术

目录标题 1. 引言1.1 流媒体传输技术的重要性1.2 为什么选择RTMP协议1.3 RTMP协议的发展与应用 2. RTMP协议基础2.1 RTMP协议简介2.2 RTMP协议与其他流媒体协议的比较2.3 RTMP协议的组成与工作原理 3. RTMP协议详解3.1 RTMP数据单元&#xff08;Message&#xff09;3.2 RTMP数据…...

声明式工作流编排框架:从计划到执行的自动化实践

1. 项目概述&#xff1a;从“计划清单”到“框架”的蜕变如果你和我一样&#xff0c;在职业生涯中经历过从零到一构建复杂应用&#xff0c;或者维护过多个技术栈各异、需求多变的项目&#xff0c;那你一定对“计划”和“清单”这两个词深有感触。我们每天都在做计划&#xff0c…...

2025届毕业生推荐的六大AI辅助论文方案实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当人工智能技术广泛渗透开来&#xff0c;它于各行各业的应用在持续深入发展。在自动化客服方…...

5分钟掌握Sketch Measure:设计师必备的设计标注神器完整指南

5分钟掌握Sketch Measure&#xff1a;设计师必备的设计标注神器完整指南 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure 还在为设计稿标注而烦恼吗&#xff…...

别再被SAR图像上的‘雪花点’骗了!手把手教你理解相干斑噪声的底层原理

别再被SAR图像上的‘雪花点’骗了&#xff01;手把手教你理解相干斑噪声的底层原理 第一次接触SAR图像时&#xff0c;那些密密麻麻的"雪花点"总让人误以为是设备故障或数据损坏。这种视觉上的"噪声"其实是合成孔径雷达&#xff08;SAR&#xff09;成像中特…...

ElevenLabs法语情感语音合成黑盒拆解:如何通过prosody token注入实现“巴黎左岸咖啡馆式”自然停顿与语调起伏?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs法语情感语音合成黑盒拆解&#xff1a;核心动机与技术定位 ElevenLabs 的法语语音合成能力并非简单地将英文模型适配至法语&#xff0c;而是依托多语言联合训练、音素级韵律建模与情感嵌入向…...

Linux微信小程序开发终极指南:从零搭建完整开发环境

Linux微信小程序开发终极指南&#xff1a;从零搭建完整开发环境 【免费下载链接】wechat-web-devtools-linux 适用于微信小程序的微信开发者工具 Linux移植版 项目地址: https://gitcode.com/gh_mirrors/we/wechat-web-devtools-linux 还在为Linux系统无法进行微信小程序…...

终极指南:3分钟学会用Onekey下载Steam游戏清单,告别手动烦恼

终极指南&#xff1a;3分钟学会用Onekey下载Steam游戏清单&#xff0c;告别手动烦恼 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 想要快速获取Steam游戏清单却苦于复杂操作&#xff1f;Oneke…...

ArcMap栅格图像平滑滤波实战:从焦点统计到重采样的多工具对比与应用

1. 栅格图像平滑滤波基础概念与应用场景 当你拿到一张遥感影像时&#xff0c;可能会发现图像上存在一些"瑕疵"——比如拼接产生的条带痕迹、传感器噪声或者不自然的过渡区域。这时候就需要用到栅格图像平滑滤波技术了。简单来说&#xff0c;这就像给照片做"美颜…...

ChatGPT-PerfectUI:开源前端界面部署与核心功能解析

1. 项目概述&#xff1a;一个为ChatGPT打造的“完美”前端界面如果你和我一样&#xff0c;是ChatGPT的重度用户&#xff0c;每天都要和它进行大量的对话&#xff0c;那么你肯定对官方那个略显简陋的Web界面有过一些“怨念”。功能切换不够直观、对话管理略显笨拙、界面风格万年…...

基于多模态大模型的智能家居视觉分析:HA-LLMVision部署与应用

1. 项目概述&#xff1a;当智能家居遇上多模态大模型 最近在折腾智能家居的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;家里的摄像头、传感器越来越多&#xff0c;但它们的“智商”似乎总差那么一口气。摄像头能告诉你“检测到移动”&#xff0c;但分不清是猫、是人…...