STL容器1

在这里插入图片描述

STL容器1

  • 1.1 vector
  • 1.2 set
  • 1.3 map

1.1 vector

vector的优点:
1.动态大小调整‌:vector可以根据需要动态地调整大小,自动分配和释放内存,确保在添加或删除元素时实现高效的内存管理‌
2.连续存储‌:vector的元素在内存中是连续存储的,这使得通过指针算术进行快速访问成为可能‌
3.高效随机访问‌:由于元素的连续存储,vector支持高效的随机访问,可以通过索引直接访问任何元素‌
4.尾部插入和删除的高效性‌:在尾部进行插入和删除操作的时间复杂度为O(1),这使得在需要频繁在序列末尾添加或移除元素时非常高效‌
5.灵活的构造方式‌:vector提供了多种构造方式,包括默认构造、通过指定大小和值进行构造、通过迭代器区间进行构造等‌
6.迭代器支持‌:vector提供了迭代器,可以通过迭代器遍历vector中的元素,支持查找、排序等算法操作‌
7.内存管理‌:vector负责动态分配和释放内存,自动管理存储元素的内存空间,确保不浪费内存‌
8.使用场景广泛‌:适用于需要动态增长和缩小的数据集合、频繁在序列末尾添加或移除元素、需要高效随机访问元素的场景‌
—全网

建立:

vector <int> v;
操作语句
输入push_back
清空clear
访问大小size

e . g . 1 e.g.1 e.g.1

vector<int>v;
v.push_back(1);
cout << v[0] << endl;
cout << v.size() << endl;

o u t p u t : output: output:

1
1

e.g.2

vector<int>v;
int a;
cin >> a;
v.push_back(a);
cout << v[0] << endl;
cout << v.size() << endl;
v.clear();
cout << v.size() << endl;

i n p u t input input

88

o u t p u t output output

88
1
0

1.2 set

本质:功能受限的平衡树
头文件:

#include <set>

建立:

set <int> a;
操作语句
插入元素insert
删除erase
查找find
查看大小size
清空clear

e . g . 1 e.g.1 e.g.1

	set <int> a;a.insert(2);a.insert(4);cout << a.size() << endl;

o u t p u t output output

2

e . g . 2 e.g.2 e.g.2

	set <int> a;a.insert(2);a.insert(4);a.erase(2);cout << a.size() << endl;

o u t p u t output output

1

e . g . 3 e.g.3 e.g.3

	set <int> a;a.insert(2);a.insert(4);a.insert(6);cout << *a.begin() << endl;a.erase(2);cout << *a.begin() << endl;a.insert(3);cout << *a.begin() << endl;

o u t p u t output output

2
4
3

e . g . 4 e.g.4 e.g.4

	set <int> a;a.insert(2);a.insert(4);a.insert(6);cout << *--a.end() << endl;

o u t p u t output output

6

e . g . 5 e.g.5 e.g.5

	set <int> a;a.insert(2);a.insert(4);a.insert(6);cout << (a.find(4) != a.end()) << endl;a.erase(4);cout << (a.find(4) != a.end()) << endl;

o u t p u t output output

1
0

e . g . 5 e.g.5 e.g.5

	set <int> a;a.insert(2);a.insert(4);a.insert(6);cout << *a.lower_bound(4) << endl;a.erase(4);cout << *a.lower_bound(4) << endl;

o u t p u t output output

4
6

e . g . 6 e.g.6 e.g.6

	set <int> a;a.insert(2);a.insert(4);a.insert(6);for (set <int> :: iterator i = a.begin(); i != a.end(); i++){cout << *i << endl;}

o u t p u t output output

2
4
6

1.3 map

本质:功能受限的平衡树,可以当成一个支持奇怪的下标的数组
头文件:

#include <map>

建立:

map <key, valur> mp;
操作语句
加入一个映射s[a] = b
访问s[a]
清空clear

e . g . 1 e.g.1 e.g.1

	map <int, int> mp;mp[-1] = 100;cout << mp[-1] << endl;

o u t p u t output output

100

e . g . 2 e.g.2 e.g.2

	map <int, int> mp;mp[-1] = 100;cout << mp[-1] << endl;mp[-1] += 500;cout << mp[-1] << endl;

o u t p u t output output

100
600

e . g . 3 e.g.3 e.g.3

	map <string, int> mp;mp["笑谈c语言"] = 5;cout << mp["笑谈c语言"] << endl;mp["笑谈c语言"] = 233;cout << mp["笑谈c语言"] << endl;

o u t p u t output output

5
233

e . g . 4 e.g.4 e.g.4

	map <int, int> mp;mp[1] = 0;mp[2] = 1;for (map <int, int> :: iterator i = mp.begin(); i != mp.end(); i++){cout << (*i).second << endl;}

o u t p u t output output

1
0

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六届国际科技创新学术交流大会暨新能源科学与电力工程国际(NESEE 2024)

重要信息 会议官网&#xff1a;nesee.iaecst.org 会议时间&#xff1a;2024年12月6-8日 会议地点&#xff1a; 中国-广州&#xff08;越秀国际会议中心) 大会简介 新能源科学与电力工程国际学术会议&#xff08;NESEE 2024&#xff09;作为第六届国际科技创新学术交流大会分…

RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程

这是一篇基于RL78/G15 Fast Prototyping Board的Arduino IDE开发记录 RL78/G15 Fast Prototyping Board硬件简介&#xff08;背景&#xff09;基础测试&#xff08;方法说明/操作说明&#xff09;开发环境搭建&#xff08;方法说明/操作说明代码结果&#xff09;Arduino IDE RL…

visionpro实践项目(一)

1.需求&#xff1a;测量零件的宽度。 2.解决思路&#xff1a;使用模板匹配工具先匹配到零件&#xff0c;使用卡尺工具测量宽度&#xff0c;使用标签工具显示宽度信息。 3.步骤&#xff1a; 导入CogPMAlignTool工具&#xff0c;训练模板&#xff0c;实现模板匹配功能。 导入卡…

Scala习题

姓名&#xff0c;语文&#xff0c;数学&#xff0c;英语 张伟&#xff0c;87&#xff0c;92&#xff0c;88 李娜&#xff0c;90&#xff0c;85&#xff0c;95 王强&#xff0c;78&#xff0c;90&#xff0c;82 赵敏&#xff0c;92&#xff0c;88&#xff0c;91 孙涛&#xff0c…

mvn-mac操作小记

1.安装brew 如果报错&#xff0c;Warning: /opt/homebrew/bin is not in your PATH. vim ~/.zshrc&#xff0c;最后一行追加 export PATH“/opt/homebrew/bin:$PATH” source ~/.zshrc 2.安装brew install maven mvn -version查看路径 Maven home: /opt/homebrew/Cellar/mav…

银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法

银河麒麟桌面系统——桌面鼠标变成x&#xff0c;窗口无关闭按钮的解决办法 1、支持环境2、详细操作说明步骤1&#xff1a;用root账户登录电脑步骤2&#xff1a;导航到kylin-wm-chooser目录步骤3&#xff1a;编辑default.conf文件步骤4&#xff1a;重启电脑 3、结语 &#x1f49…

路由器中继与桥接

一 . 背景 现在的路由器大多数已经开始支持多种网络连接模式&#xff0c;以下将以TP-Link迷你无线路由器为例进行展开介绍。在TP-Link迷你无线路由器上一般有AP&#xff08;接入点&#xff09;模式&#xff0c;Router&#xff08;无线路由&#xff09;模式&#xff0c;Repeate…

基于springboot的县市级土地使用监控系统的设计与实现

文末获取本系统&#xff08;程序源码数据库调试部署开发环境&#xff09;文末可获取&#xff0c;系统界面在最后面。 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的…

Java【多线程】(1)进程与线程

目录 1.前言 2.正文 2.1什么是进程 2.2PCB&#xff08;进程控制块&#xff09; 2.2.1进程id 2.2.2内存指针 2.2.3文件描述符表 2.2.4进程状态 2.2.4.1就绪状态 2.2.4.2阻塞状态 2.2.5进程优先级 2.2.6进程上下文 2.2.7进程的记账信息 2.3CPU操作进程的方法 2.4什…

.net的winfrom程序 窗体透明打开窗体时出现在屏幕右上角

窗体透明&#xff0c; 将Form的属性Opacity&#xff0c;由默认的100% 调整到 80%&#xff0c;这个数字越小越透明(尽量别低于50%&#xff0c;不信你试试看)&#xff01; 打开窗体时出现在屏幕右上角 //构造函数 public frmCalendarList() {InitializeComponent();//打开窗体&…

金融租赁系统助力企业升级与风险管理的新篇章

内容概要 在当今的商业环境中&#xff0c;“金融租赁系统”可谓是企业成功的秘密武器。简单来说&#xff0c;这个系统就像一位聪明的财务顾问&#xff0c;帮助企业在资金和资源的运用上达到最优化。从设备采购到项目融资&#xff0c;它提供了一种灵活的方式&#xff0c;让企业…

突破内存限制:Mac Mini M2 服务器化实践指南

本篇文章&#xff0c;我们聊聊如何使用 Mac Mini M2 来实现比上篇文章性价比更高的内存服务器使用&#xff0c;分享背后的一些小的思考。 希望对有类似需求的你有帮助。 写在前面 在上文《ThinkPad Redis&#xff1a;构建亿级数据毫秒级查询的平民方案》中&#xff0c;我们…

scala模式匹配

object test47 {def main(args: Array[String]): Unit {val id"445646546548858548648"//取出id前两位val provinceid.substring(0,2) // println(province) // if (province"42"){ // println("湖北") // }else if(province&quo…

第R4周:LSTM-火灾温度预测(TensorFlow版)

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营]中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊]** 往期文章可查阅&#xff1a; 深度学习总结 任务说明&#xff1a;数据集中提供了火灾温度&#xff08;Tem1&#xff09;、一氧化碳浓度…

transformer.js(三):底层架构及性能优化指南

Transformer.js 是一个轻量级、功能强大的 JavaScript 库&#xff0c;专注于在浏览器中运行 Transformer 模型&#xff0c;为前端开发者提供了高效实现自然语言处理&#xff08;NLP&#xff09;任务的能力。本文将详细解析 Transformer.js 的底层架构&#xff0c;并提供实用的性…

spf算法、三类LSA、区间防环路机制/规则、虚连接

1.构建spf树&#xff1a; 路由器将自己作为最短路经树的树根根据Router-LSA和Network-LSA中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识。广播网络中DR和其所连接路由器的Cost值为0。SPF树中只有单向的最短路径,保证了OSPF区域内路由计管不…

如何选择黑白相机和彩色相机

我们在选择成像解决方案时黑白相机很容易被忽略&#xff0c;因为许多新相机提供鲜艳的颜色&#xff0c;鲜明的对比度和改进的弱光性能。然而&#xff0c;有许多应用&#xff0c;选择黑白相机将是更好的选择&#xff0c;因为他们产生更清晰的图像&#xff0c;更好的分辨率&#…

【Flink】快速理解 FlinkCDC 2.0 原理

快速理解 FlinkCDC 2.0 原理 要详细理解 Flink CDC 原理可以看看这篇文章&#xff0c;讲得很详细&#xff1a;深入解析 Flink CDC 增量快照读取机制 (https://juejin.cn/post/7325370003192578075)。 FlnkCDC 2.0&#xff1a; Flink 2.x 引入了增量快照读取机制&#xff0c;…

AI智能体崛起:从“工具”到“助手”的进化之路

目录 AI智能体的崛起 AI智能体的定义与决策模型 AI智能体的特点与优势 AI智能体的应用与类型 面临的挑战 未来展望 近年来&#xff0c;人工智能领域的焦点正从传统的聊天机器人&#xff08;Chat Bot&#xff09;快速转向更具潜力的AI智能体&#xff08;AI Agent&#xff…

RAG架构类型

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…