常见容器的方法
常见容器
- 向量 (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.合理的对地址空间和页表进行资源划分就可以对一个进程的所有资源进行划分:过地址空间分为栈区、堆区…通过页表映射到不同的物理内存。 在32位平台下,…...
ASP.NET Core MVC 从入门到精通之wwwroot和客户端库
随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,…...
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…...
垃圾收集算法面试总结
垃圾收集算法 标记 - 清除算法 首先标记出所有需要被回收的对象,标记完后统一回收所有被标记的对象。 后续的收集算法都是基于这种思路并对其不足进行改进而得到的。 这种方法主要有两个缺点: 一个是效率问题,标记和清除两个过程的效率都…...
grep替换指定字符串方法
在 Linux 命令行中,可以使用 grep 命令来查找匹配某个模式的字符串,并将其替换为另一个字符串。具体方法如下: grep -rl <pattern> <directory> | xargs sed -i s/<old_string>/<new_string>/g其中,<…...
主从模式、哨兵模式、集群模式(cluster)
主从模式、哨兵模式、集群模式(cluster) redis 实现高可用的方式分为 主从模式、哨兵模式、集群模式(cluster) 1. 主从模式(又称为主从复制) 表现为1个主节点,多个从节点,主节点负…...
题目3180:蓝桥杯2023年第十四届省赛真题-互质数的个数======及探讨互质专题
原题链接 https://www.dotcpp.com/oj/problem3162.html 想直接看题解的,跳转到第三次尝试即可。 已AC。 解析: (1)首先大家要知道什么叫互质: 以及它们的性质: 欧拉函数 在数论中,对正整…...
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连接 主要思路是借助一个队列,将每一层的数据以size统计,当size为0时说明该层数据已经输入完&…...
grep -nr 命令查询字符串方式
grep -nr “搜索内容” 文件路径 其中: -n:显示行号-r:递归查找子目录中的文件“搜索内容”:要搜索的内容文件路径:要搜索的文件路径,可以是单个文件或目录路径(将会递归搜索该目录下的所有文…...
AgentAI+ChatGPT给出答案-为什么即时通讯需要心跳
序言 人工智能ChatGpt 结合系统化的问题拆解, 现在已经能够进行问题的拆解与自问自答, 预计未来很多的脑力工作要被释放了, 作为即时通讯的开发人员, 我问问专业的问题 为什么即时通讯需要心跳 先看产品界面与使用结果 问题拆解过程 执行任务1: 概念搜索 “Executing “Res…...
跨平台跨端的登录流程及其安全设计
跨平台跨端的登录流程及其安全设计 目录 跨平台跨端的登录流程及其安全设计 一、登录流程 1.1、登录流程时序图 1.2、三方App 登录 1.3、请求的路由守卫 二、注册流程 2.1、注册流程时序图 2.2、多因素认证 2.3、自动跳转登录页面 三、涉及的技术与安全 3.1、用户…...
如何在Java中创建临时文件?
在Java程序中,有时需要创建临时文件来暂存数据或者执行某些操作。Java提供了许多方式来创建临时文件。在本教程中,我们将介绍如何使用Java标准库来创建临时文件。 一、使用File.createTempFile()方法 Java标准库中的File类提供了createTempFile()方法来…...
Vue表单基本操作-收集表单数据
收集表单数据 使用vue中的v-model收集表单里面的数据,不同的表单元素配合v-model会有不同的写法和技巧 本次的表单元素包括:文本框,单选,多选,下拉框,文本域 编写表单元素 首先编写表单元素,…...
Android 一个获取网址时间的Demo
Android 一个获取网址时间的Demo 文章目录 Android 一个获取网址时间的Demo通过一个网址获取时间的代码关于Android NTP 时间Android 同步时间代码 前段时间有个客户想用局域网同步Android 设备的时间,开发后把这个demo分享一下。 效果: 这里也获取了阿…...
ijkplayer解码流程源码解读
ijkplayer是一款基于ffmpeg的在移动端比较流行的开源播放器。FFmpeg是一款用于多媒体处理、音视频编解码的自由软件工程,采用LGPL或GPL许可证。 要想理解ijkplayer源码,首先得知道视频播放器的基本原理。 视频播放器播放一个互联网上的视频文件…...
2023年值得关注的3个品牌趋势,帮你弯道超车
2023年,大环境开放,压抑三年的消费蓄势待发,品牌如何唤醒消费者的、热情成了重中之重的大事。 春风和煦,万物生长。又到了各类品牌、各位营销人踌躇满志、斗志昂扬的时候了,浅析一下2023品牌宣传趋势,抓住…...
软考-高级项目管理(二十)
第20章 高级项目管理 (P572考0-2分选择 性价比很低) 在项目集管理中涉及的相关角色主要包括: 项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人 1.项目集发起人 项目集发起人和收益人是负责承诺将组织的资源应用于项目集,并致力于使项目集取得…...
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数据单元(Message)3.2 RTMP数据…...
实战指南:基于快马生成tomcat生产级配置,涵盖https、集群与性能调优
今天想和大家分享一个实战经验:如何在生产环境中配置Tomcat服务器。作为一个长期和Tomcat打交道的开发者,我深知生产环境配置和本地开发环境的巨大差异。最近在InsCode(快马)平台上实践了一套完整的配置方案,效果很不错,这里把关键…...
OpenClaw+GLM-4.7-Flash语音交互:对接Whisper实现语音控制
OpenClawGLM-4.7-Flash语音交互:对接Whisper实现语音控制 1. 为什么需要语音交互的自动化助手? 去年冬天的一个深夜,我裹着毯子在书房调试代码时突然想到:如果能用语音控制电脑执行重复性任务,就不用反复在键盘和鼠标…...
springboot-vue+nodejs的农村综合风貌展示平台
目录技术架构设计功能模块划分开发实施步骤测试与部署关键代码示例项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术架构设计 后端框架选择 Spring Boot作为核心框架,提供RESTful API接口。 Node.js作为辅助服务…...
浅谈:区块链存在的三点隐患问题
上文我们讲了区块链这个话题,有读者可能会有疑问:如果说区块链技术如此完美,为什么我们现在还没有广泛地用上它呢?实际上,区块链技术还处于发展早期,还在讨论和推进当中,而区块链的技术发展也较…...
自媒体人的秘密武器:OpenClaw+Qwen3-32B-Chat全平台内容分发
自媒体人的秘密武器:OpenClawQwen3-32B-Chat全平台内容分发 1. 为什么我需要一个自动化内容分发助手 去年夏天,我同时运营着公众号、微博和短视频三个平台。每次创作完核心内容后,总要花大量时间做格式转换:把长文章拆成微博线程…...
深度学习计算机视觉:从原理到实践
深度学习计算机视觉:从原理到实践 1. 背景与动机 计算机视觉是深度学习最成功的应用领域之一。从图像分类到目标检测,从语义分割到图像生成,深度学习技术已广泛应用于自动驾驶、医疗影像、工业检测等领域。本文将介绍计算机视觉的核心技术和实…...
解锁AI创作自由:ComfyUI节点式工作流从入门到精通
解锁AI创作自由:ComfyUI节点式工作流从入门到精通 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI 你是否遇到过这样的困境:想要调整AI生成图像的某个细节…...
Linux用户管理全攻略:从创建到权限配置
1. Linux用户管理基础入门 刚接触Linux系统的朋友,经常会遇到这样的困惑:为什么有些命令普通用户不能执行?为什么新建的用户连基本的命令补全都没有?其实这些都是用户管理的问题。作为一个用了10年Linux的老鸟,今天我就…...
OpenClaw压力测试:百川2-13B-4bits模型连续处理100个文件的稳定性
OpenClaw压力测试:百川2-13B-4bits模型连续处理100个文件的稳定性 1. 测试背景与动机 上周在整理项目文档时,我遇到了一个典型问题:需要批量重命名103个Markdown文件,并从中提取关键字段生成目录索引。手动操作不仅耗时…...
ollama-QwQ-32B微调实践:优化OpenClaw的鼠标操作准确率
ollama-QwQ-32B微调实践:优化OpenClaw的鼠标操作准确率 1. 为什么需要微调模型? 去年冬天,当我第一次用OpenClaw自动整理桌面文件时,眼睁睁看着它把"季度报表.xlsx"拖进了"娱乐"文件夹——这个哭笑不得的瞬…...
