C/C++ 标准模版库STL(持续更新版)

标准模版库STL

<algorithm> 算法库

max, min 用于找出一组值中的最大值和最小值

swap 用于交换两个变量的值

sort 用于对一个范围内的元素进行排序

lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界

unique(a,a+n)-a 用于在一个范围内删除相邻重复的元素,返回不重复元素的范围终点

Next_permutation 用于获取一个序列的下一个排列

Prev_permutation 用于获取一个序列的前一个排列

<stack> 栈

st.push() 将一个元素压入栈顶,即将一个新元素添加到栈的顶部

st.top() 返回栈顶元素的引用,但不会移除该元素。如果栈为空,访问栈顶元素是不安全的

st.pop() 移除栈顶元素,即将栈顶元素弹出,使得栈的大小减少一个元素

st.empty() 返回一个布尔值,表示栈是否为空。如果栈为空,返回 true,否则返回 false

st.size() 返回当前栈中元素的数量,即栈的大小

<queue> 队列

q.push() 将一个元素压入队列尾部,即将一个新元素添加到队列的尾部

q.front() 返回队列头部的元素的引用,但不会移除该元素。如果队列为空,访问队列头部元素是不安全的

q.pop() 移除队列头部的元素,即将队列头部元素弹出,使得队列中的元素数量减少一个

q.empty() 返回一个布尔值,表示队列是否为空。如果队列为空,返回 true,否则返回 false

q.size() 返回当前队列中元素的数量,即队列的大小

<vector> 向量

V[i] 访问向量 V 中的第 i 个元素,其中索引从 0 开始

v.push_back() 将一个元素添加到向量的末尾

V. insert() 在向量中的指定位置 it 处插入一个元素,可以是具体的值 value

v.size() 返回向量中元素的数量,即向量的大小

v.front() 返回向量的第一个元素的引用

v.back() 返回向量的最后一个元素的引用

v.empty() 返回一个布尔值,表示向量是否为空。如果向量为空,返回 true,否则返回 false
v.clear() 移除向量中的所有元素,使得向量为空

v.erase(it) 从向量中移除由迭代器 it 指向的元素

<map> 映射

map<int, int> a 创建一个名为 a 的映射,其中键和值都是整数类型。

m.find(x) 在映射 m 中查找键为 x 的元素,返回一个迭代器指向该元素。如果找不到,返回 m.end() 迭代器。

m.count(x) 返回映射 m 中键为`x 的元素的数量。由于映射中每个键只能有一个对应的值,所以这个函数的返回值要么是 0(未找到)要么是 1(找到)。

m.size() 返回映射中元素的数量,即映射的大小。

<list> 列表

li.front() 返回双向链表 li 中的第一个元素的引用。

li.pop_back() 移除双向链表 li 的最后一个元素。

li.pop_front() 移除双向链表 li 的第一个元素。

<deque> 双向链表

双端队列允许在两端(前端和后端)高效地插入和移除元素。

dq.push_back(value) 和 dq.push_front(value):在后端或前端添加元素。

dq.pop_back() 和 dq.pop_front():从后端或前端移除元素。

dq.back() 和 dq.front():访问后端和前端元素。

dq.size():返回元素数量。

dq.empty():检查是否为空。

dq.clear():移除所有元素。

dq.at(index):访问特定索引处的元素。

dq.begin() 和 end():返回迭代器。

dq.rbegin() 和 rend():反向迭代器。

dq.erase(position):移除指定位置的元素。

dq.insert(position, value):在指定位置插入元素。

dq.swap(other):交换两个双端队列的内容。

<set> 集合

insert(value):插入一个元素到集合中。插入后会自动排序,且不会插入重复元素。 erase(value):从集合中删除指定的元素。

find(value):查找给定元素是否存在于集合中,如果存在,返回指向该元素的迭代器,否则返回 end()。

size():返回集合中的元素数量。

empty():检查集合是否为空。

clear():移除集合中的所有元素。

begin() 和 end():返回迭代器,用于遍历集合。

lower_bound(value):返回第一个大于等于给定值的元素的迭代器。

upper_bound(value):返回第一个大于给定值的元素的迭代器。

equal_range(value):返回一个 pair,其中包含了与给定值相等的元素的范围。

#include <set>
#include <iostream>
using namespace std;int main() {set<int> mySet;mySet.insert(5);mySet.insert(3);mySet.insert(8);cout << "Set contains:";for (int num : mySet) {cout << " " << num;}cout << endl;if (mySet.find(3) != mySet.end()) {cout << "3 在集合中." << endl;}return 0;
}

Iterator 送代器

#include <vector>
#include <iostream>
using namespace std;int main() {vector<int> numbers = {1, 2, 3, 4, 5};// 使用送代器遍历for (vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it) {cout << *it << " ";}return 0;
}

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

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

相关文章

新的 Python URL 解析漏洞可能导致命令执行攻击

Python URL 解析函数中的一个高严重性安全漏洞已被披露&#xff0c;该漏洞可绕过 blocklist 实现的域或协议过滤方法&#xff0c;导致任意文件读取和命令执行。 CERT 协调中心&#xff08;CERT/CC&#xff09;在周五的一份公告中说&#xff1a;当整个 URL 都以空白字符开头时&…

在 docker 中快速启动 Apache Hive

介绍 在伪分布式模式下&#xff0c;在Docker容器内运行Apache Hive&#xff0c;可以提供以下功能&#xff1a;快速启动/调试/为Hive准备测试环境。 快速开始 1. 拉取镜像 从DockerHub&#xff1a;https://hub.docker.com/r/apache/hive/tags中拉取镜像。目前发布了3个镜像&…

gitlab修改远程仓库地址

目录 背景&#xff1a; 解决&#xff1a; 1.删除本地仓库关联的远程地址&#xff0c;添加新的远程仓库地址 2.直接修改本地仓库关联的远程仓库地址 3.打开.git隐藏文件修改远程仓库地址 4.拉取代码报错(git host key verification failed) 背景&#xff1a; 公司搬家&#…

数字图像处理 - 图像处理结合机器学习的应用示例

在本文中,特别关注树叶分类机器学习技术的实现。我们的目标是演示如何利用机器学习算法来分析一系列叶子照片,从而实现准确分类并提供对植物领域有价值的算法。 图像处理中机器学习的本质 机器学习使计算机能够学习模式并根据视觉数据进行预测,彻底改变了图像处理领域。在叶…

image has dependent child images

问题&#xff1a;很多none的镜像无法被删除 解决过程&#xff1a; 1、通过 docker image prune -f 提示可删除为 0 2、直接进行删除报错&#xff1a; docker rmi 8f5116cbc201Error response from daemon: conflict: unable to delete 8f5116cbc201 (cannot be forced) - im…

银河麒麟安装php7.1.33

银河麒麟V10兼容CentOS 8 安装过程与CentOS类似。 TencentOS3.1安装PHPNginxredis测试系统_乐大师的博客-CSDN博客 可以参考之前我写的文章。 不过有2个细节不同&#xff0c;下面说下。 问题1&#xff1a;编译错误提示“error:off_t undefined” 解决方法&#xff1a; 编…

TCP收发信息(C++)

目录 一、介绍 二、收数据 三、发数据 一、介绍 tcp和udp的区别之一&#xff0c;即tcp是有连接的&#xff0c;udp是无连接的&#xff0c;udp收发数据的代码可以独立运行&#xff0c;tcp发数据前必须确保收数据的一方是打开的&#xff0c;否则无法建立连接。 二、收数据 tc…

宋浩线性代数笔记(五)矩阵的对角化

本章的知识点难度和重要程度都是线代中当之无愧的T0级&#xff0c;对于各种杂碎的知识点&#xff0c;多做题复盘才能良好的掌握&#xff0c;良好掌握的关键点在于&#xff1a;所谓的性质A与性质B&#xff0c;是谁推导得谁~

MyBatis的SqlSession使用步骤

对MyBatis的SqlSession理解 SqlSession是 MyBatis 框架中的一个接口&#xff0c;用于执行与数据库相关的操作。它提供了一系列方法&#xff0c;用于查询、插入、更新和删除数据等数据库操作。 SqlSession接口是通过SqlSessionFactory创建的&#xff0c;每个SqlSession实例都代…

Ubuntu22.04复现SHADEWACHER(手动安你就慢了)

因为我是打算跑TC数据集&#xff0c;所以跳过audit安装。 我的Ubuntu使用的是清华源。 1. Parser Setup 1.1 g apt install g1.2 neo4j Ubuntu22.04换什么源都会导致无法定位软件包&#xff0c;添加neo4j的官方源又会导致不信任的源。 22.04以下的版本&#xff0c;直接用命…

MySQL 根据多字段查询重复数据

MySQL 根据多字段查询重复数据 在实际的数据库应用中&#xff0c;我们经常需要根据多个字段来查询重复的数据。MySQL 提供了一些方法来实现这个功能&#xff0c;让我们能够快速准确地找到和处理重复数据。本文将介绍如何使用 MySQL 来根据多字段查询重复数据&#xff0c;并提供…

SIFT 算法 | 如何在 Python 中使用 SIFT 进行图像匹配

介绍 人类通过记忆和理解来识别物体、人和图像。你看到某件事的次数越多,你就越容易记住它。此外,每当一个图像在你的脑海中弹出时,它就会将该项目或图像与一堆相关的图像或事物联系起来。如果我告诉你我们可以使用一种称为 SIFT 算法的技术来教机器做同样的事情呢? 尽管…

C语言——动态内存函数(malloc、calloc、realloc、free)

了解动态内存函数 前言&#xff1a;一、malloc函数二、calloc函数三、realloc函数四、free函数 前言&#xff1a; 在C语言中&#xff0c;动态内存函数是块重要的知识点。以往&#xff0c;我们开辟空间都是固定得&#xff0c;数组编译结束后就不能继续给它开辟空间了&#xff0…

贴吧照片和酷狗音乐简单爬取

爬取的基本步骤 很简单&#xff0c;主要是两大步 向url发起请求 这里注意找准对应资源的url&#xff0c;如果对应资源不让程序代码访问&#xff0c;这里可以伪装成浏览器发起请求。 解析上一步返回的源代码&#xff0c;从中提取想要的资源 这里解析看具体情况&#xff0c;一…

13 计算机视觉-代码详解

13.2 微调 为了防止在训练集上过拟合&#xff0c;有两种办法&#xff0c;第一种是扩大训练集数量&#xff0c;但是需要大量的成本&#xff1b;第二种就是应用迁移学习&#xff0c;将源数据学习到的知识迁移到目标数据集&#xff0c;即在把在源数据训练好的参数和模型&#xff…

浅谈现代医院手术室IT供配电系统的设计与研究

安科瑞 华楠 &#xff3b;摘要&#xff3d; 随着人们的生活水平的不断提高&#xff0c;医疗条件的不断改善&#xff0c;人们对健康越来越重视同时对医疗条件的要求也越来越高&#xff0c;对医院手术室医疗设施提出了新的要求。以往医院普通手术室状况已不能满足人们的要求&…

GPT的第一个创作

嗨&#xff0c;大家好&#xff0c;我是赖兴泳&#xff01;今天&#xff0c;我要和大家聊一聊前端开发&#xff0c;就像我用音符创造音乐一样&#xff0c;前端开发也是创造美丽的用户界面的过程。 前端开发是构建网站和应用程序用户界面的关键部分。就像音乐家需要精心编排音符…

腾讯云CVM服务器端口在安全组中打开!

腾讯云服务器CVM端口怎么开通&#xff1f;腾讯云服务器端口是通过配置安全组规则来开通的&#xff0c;腾讯云服务器网以开通80端口为例来详细说下腾讯云轻量应用服务器开启端口的方法&#xff0c;其他的端口的开通如8080、1433、443、3306、8888等端口也适用于此方法&#xff0…

基于Yolov5与LabelMe训练自己数据的图像分割完整流程

基于Yolov5与LabelMe训练自己数据的实例分割完整流程 1. Yolov5配置2. 创建labelme虚拟环境4. 接下来开始使用labelme绘制分割数据集4.1 json to txt4.2 划分数据集(可分可不分) 5. 训练 1. Yolov5配置 参照这边文章&#xff1a; https://blog.csdn.net/ruotianxia/article/de…

okcc对接ASR平台,okcc客户投诉的安全问题

客户投诉: 客户为什么要投诉&#xff1f;实际上分为两种情况&#xff0c;一是客户被冒犯到不能容忍导致的投诉&#xff0c;二是恶意投诉。降低客户被冒犯投诉的概率&#xff0c;无非就是选择客户、规范用语、降低频度&#xff1b;减少恶意投诉&#xff0c;回避是实践证明最有效…