怎么把自己做的网站弄到域名上/免费的推广引流软件下载
c++STL容器的使用(vector, list, map, set等)
在C++的STL(Standard Template Library)中,容器是重要的一部分,它们提供了各种数据结构来存储和管理数据。以下是一些常见的STL容器及其使用方法的简要说明:
- Vector(向量)
std::vector 是一个动态数组,可以动态地添加和删除元素。
#include <vector>
#include <iostream> int main() { // 创建一个空的vector std::vector<int> vec; // 向vector中添加元素 vec.push_back(1); vec.push_back(2); vec.push_back(3); // 访问元素 std::cout << "First element: " << vec[0] << std::endl; // 遍历vector for (const auto& elem : vec) { std::cout << elem << " "; } // 删除元素 vec.pop_back(); // 删除最后一个元素 return 0;
}
- List(列表)
std::list 是一个双向链表,提供了高效的插入和删除操作。
#include <list>
#include <iostream> int main() { // 创建一个空的list std::list<int> lst; // 向list中添加元素 lst.push_back(1); lst.push_front(0); // 遍历list for (const auto& elem : lst) { std::cout << elem << " "; } // 删除元素 lst.remove(1); // 删除所有值为1的元素 return 0;
}
- Map(映射)
std::map 是一个关联容器,它存储的元素是键值对,并按键进行排序。
#include <map>
#include <iostream> int main() { // 创建一个空的map std::map<std::string, int> m; // 向map中添加元素 m["apple"] = 1; m["banana"] = 2; // 访问元素 std::cout << "Apple count: " << m["apple"] << std::endl; // 遍历map for (const auto& pair : m) { std::cout << pair.first << ": " << pair.second << std::endl; } // 删除元素 m.erase("banana"); // 删除键为"banana"的元素 return 0;
}
- Set(集合)
std::set 是一个关联容器,它存储的元素是唯一的,并按值进行排序。
#include <set>
#include <iostream> int main() { // 创建一个空的set std::set<int> s; // 向set中添加元素 s.insert(1); s.insert(2); s.insert(1); // 这个元素不会被插入,因为set中不允许重复 // 遍历set for (const auto& elem : s) { std::cout << elem << " "; } // 删除元素 s.erase(1); // 删除值为1的元素 return 0;
}
在使用这些STL容器时,通常会用到一些通用的STL算法,如std::sort(排序),std::find(查找),std::for_each(对容器中每个元素执行操作)等。此外,容器还提供了很多成员函数来操作元素,如push_back,pop_back,insert,erase,begin,end等。
c++STL算法的理解与使用(sort, find, binary_search等)
C++的STL(Standard Template Library)提供了一系列算法,这些算法可以与STL容器配合使用,以执行各种常见的任务,如排序、查找和搜索。以下是对一些常见STL算法的理解与使用的简要说明:
- std::sort(排序)
std::sort是一个通用排序算法,可以对任何提供随机访问迭代器的序列进行排序。
#include <algorithm>
#include <vector>
#include <iostream> int main() { std::vector<int> numbers = {4, 2, 5, 3, 1}; // 使用std::sort对vector进行排序 std::sort(numbers.begin(), numbers.end()); // 输出排序后的vector for (const auto& num : numbers) { std::cout << num << " "; } return 0;
}
- std::find(查找)
std::find用于在序列中查找特定元素。如果找到,则返回指向该元素的迭代器;否则,返回序列的尾迭代器。
#include <algorithm>
#include <vector>
#include <iostream> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; int target = 3; // 使用std::find查找target auto it = std::find(numbers.begin(), numbers.end(), target); if (it != numbers.end()) { std::cout << "Found " << target << " at position: " << std::distance(numbers.begin(), it) << std::endl; } else { std::cout << target << " not found" << std::endl; } return 0;
}
- std::binary_search(二分查找)
std::binary_search用于在已排序的序列中执行二分查找。它要求序列必须是已排序的,否则结果将是未定义的。
#include <algorithm>
#include <vector>
#include <iostream> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; int target = 3; // 确保序列已排序 std::sort(numbers.begin(), numbers.end()); // 使用std::binary_search进行查找 bool found = std::binary_search(numbers.begin(), numbers.end(), target); if (found) { std::cout << target << " found in the sorted sequence" << std::endl; } else { std::cout << target << " not found" << std::endl; } return 0;
}
使用注意事项:
std::sort默认使用<操作符来比较元素,但也可以传递自定义比较函数或lambda表达式。
std::find和std::binary_search返回的都是迭代器,需要与容器的开始迭代器比较来确定是否找到了目标元素。
std::binary_search要求序列必须是已排序的,否则会返回未定义的结果。
这些算法都提供了很大的灵活性,因为它们是模板化的,可以与任何类型的容器一起使用,只要这些容器提供适当的迭代器类型。此外,它们也可以很容易地与C++的lambda表达式结合使用,以提供自定义的比较逻辑。
相关文章:

c++STL容器的使用(vector, list, map, set等),c++STL算法的理解与使用(sort, find, binary_search等)
cSTL容器的使用(vector, list, map, set等) 在C的STL(Standard Template Library)中,容器是重要的一部分,它们提供了各种数据结构来存储和管理数据。以下是一些常见的STL容器及其使用方法的简要说明&#x…...

选择VR全景行业,需要了解哪些内容?
近年来,随着虚拟现实、增强现实等技术的持续发展,VR全景消费市场得以稳步扩张。其次,元宇宙行业的高速发展,也在进一步拉动VR全景技术的持续进步,带动VR产业的高质量发展。作为一种战略性的新兴产业,国家和…...

830. 单调栈
Problem: 830. 单调栈 文章目录 思路解题方法复杂度Code 思路 这是一个单调栈的问题。单调栈是一种特殊的栈结构,它的特点是栈中的元素保持单调性。在这个问题中,我们需要找到每个元素左边第一个比它小的元素,这就需要使用到单调递增栈。 我们…...

H5 个人引导页官网型源码
H5 个人引导页官网型源码 源码介绍:源码无后台、无数据库,H5自检测适应、无加密,直接修改可用。 源码含有多选项,多功能。可展示自己站点、团队站点。手机电脑双端。 下载地址: https://www.changyouzuhao.cn/1434.…...

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)
目录 前言 一 Nginx(自启动) 2.1 Nginx的安装 2.2 设置自启动Nginx 二 Nginx负载均衡tomcat 2.1 准备两个tomcat 2.1.1 复制tomcat 2.1.2 修改server.xml文件 2.1.3 开放端口 2.2 Nginx配置 2.2.1 修改nginx.conf文件 2.2.2 重启Nginx服务 2…...

WPF Style样式设置
1.本window设置样式 <Window x:Class"WPF_Study.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressi…...

【STM32】软件SPI读写W25Q64芯片
目录 W25Q64模块 W25Q64芯片简介 硬件电路 W25Q64框图 Flash操作注意事项 状态寄存器 编辑 指令集 INSTRUCTIONS编辑 编辑 SPI读写W25Q64代码 硬件接线图 MySPI.c MySPI.h W25Q64 W25Q64.c W25Q64.h W25Q64_Ins.h main.c 测试 SPI通信(W25…...

普通中小学校管理信息系统V1.1
普通中小学校管理信息系统 Ordinary Primary and Secondary Schools Management Information System 普通中小学校管理信息系统 Ordinary Primary and Secondary Schools Management Information System...

中国水果采摘机器人行业市场研究及发展趋势分析报告
全版价格:壹捌零零 报告版本:下单后会更新至最新版本 交货时间:1-2天 第一章 2016-2026年中国水果采摘机器人行业总概 1.1 中国水果采摘机器人行业发展概述 机器人技术的发展是一个国家高科技水平和工业自动化程度的重要标志和体现。机器…...

Linux多进程与信号
在多进程的服务程序中,如果子进程收到退出信号,子进程自行退出。如果父进程收到退出信号,应该先向全部的子进程发送退出信号,然后自己再退出。 演示demo程序 #include <iostream> // 包含输入输出流库,用于输…...

Self-attention与Word2Vec
Self-attention(自注意力)和 Word2Vec 是两种不同的词嵌入技术,用于将单词映射到低维向量空间。它们之间的区别: Word2Vec: Word2Vec 是一种传统的词嵌入(word embedding)方法,旨在为…...

【Flutter/Android】运行到安卓手机上一直卡在 Running Gradle task ‘assembleDebug‘... 的终极解决办法
方法步骤简要 查看你的Flutter项目需要什么版本的 Gradle 插件: 下载这个插件: 方法一:浏览器输入:https://services.gradle.org/distributions/gradle-7.6.3-all.zip 方法二:去Gradle官网找对应的版本:h…...

医疗实施-客户需求分析
在我的日常系统实施过程中,总会遇到不同角色的客户提出不同类别的需求。有的需求,客户目的想提高操作便携,但会对系统稳定性存在风险,应该拒掉。有些需求紧急而且影响重大,应该紧急处理。有些需求可以做,但…...

调度服务看门狗配置
查看当前服务器相关的sqlserver服务 在任务栏右键,选择点击启动任务管理器 依次点击,打开服务 找到sqlserver 相关的服务, 确认这些服务是启动状态 将相关服务在看门狗中进行配置 选择调度服务,双击打开 根据上面找的服务进行勾…...

AI时代 编程高手的秘密武器:世界顶级大学推荐的计算机教材
文章目录 01 《深入理解计算机系统》02 《算法导论》03 《计算机程序的构造和解释》04 《数据库系统概念》05 《计算机组成与设计:硬件/软件接口》06 《离散数学及其应用》07 《组合数学》08《斯坦福算法博弈论二十讲》 清华、北大、MIT、CMU、斯坦福的学霸们在新学…...

【数据结构和算法初阶(c语言)】数据结构前言,初识数据结构(给你一个选择学习数据结构和算法的理由)
1.何为数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的 数据元素的集合。本质来讲就是在内存中去管理数据方式比如我们的增删查改。在内存中管理数据的方式有很多种(比如数组结构、链式结构、树型结…...

LeetCode 0235.二叉搜索树的最近公共祖先:用搜索树性质(不遍历全部节点)
【LetMeFly】235.二叉搜索树的最近公共祖先:用搜索树性质(不遍历全部节点) 力扣题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/ 给定一个二叉搜索树, 找到该树中两个指定节点的最近公…...

【Prometheus】概念和工作原理介绍
目录 一、概述 1.1 prometheus简介 1.2 prometheus特点 1.3 prometheus架构图 1.4 prometheus组件介绍 1、Prometheus Server 2、Client Library 3、pushgateway 4、Exporters 5、Service Discovery 6、Alertmanager 7、grafana 1.5 Prometheus 数据流向 1.6 Pro…...

四川易点慧电子商务有限公司抖音小店:可靠之选,购物新体验
在当今这个网络购物日益盛行的时代,选择一家可靠的电商平台成为了消费者最为关心的问题之一。四川易点慧电子商务有限公司抖音小店作为新兴的电商力量,凭借其独特的魅力和优势,正逐渐成为众多消费者心中的可靠之选。 易点慧电子商务有限公司在…...

SpringBoot自带的tomcat的最大连接数和最大的并发数
先说结果:springboot自带的tomcat的最大并发数是200, 最大连接数是:max-connectionsaccept-count的值 再说一下和连接数相关的几个配置: 以下都是默认值: server.tomcat.threads.min-spare10 server.tomcat.threa…...

TLS1.2抓包解析
1.TLS1.2记录层消息解析 Transport Layer SecurityTLSv1.2 Record Layer: Handshake Protocol: Client HelloContent Type: Handshake (22)Version: TLS 1.0 (0x0301)Length: 253Content Type:消息类型,1个字节。 i 0Version:协议版本&…...

使用两个队列实现栈
在计算机科学中,栈是一种数据结构,它遵循后进先出(LIFO)的原则。这意味着最后一个被添加到栈的元素将是第一个被移除的元素。然而,Java的标准库并没有提供栈的实现,但我们可以使用两个队列来模拟一个栈的行…...

通过ffmpeg实现视频背景色替换
最近遇到一个需求,希望可以将素材视频的绿幕背景替换为指定的颜色,然后通过裁剪,拼接等处理制作一个新的视频。所以替换背景色成为了重要的一环,看能否通过ffmpeg来实现。通过一番搜索尝试,发现方案可行。下面我整理一…...

后轮位置反馈控制与算法仿真实现
文章目录 1. 后轮反馈控制2. 算法原理3. 算法和仿真实现 1. 后轮反馈控制 后轮反馈控制(Rear wheel feedback)算法是利用后轮中心的跟踪偏差来进行转向控制量计算的方法,属于Frenet坐标系的一个应用。通过选择合适的李雅普诺夫函数设计控制率…...

实战 vue3 使用百度编辑器ueditor
前言 在开发项目由于需求vue自带对编辑器不能满足使用,所以改为百度编辑器,但是在网上搜索发现都讲得非常乱,所以写一篇使用流程的文章 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载ueditor编辑器 一个“…...

N种方法解决1(CTF)
这里遇到的问题:一开始采用的base64解码平台有问题;默认解密出的格式为GBK格式;直接复制粘贴发现无法还原图片;又尝试了其他编码的;发现只有hex格式可以保证图片正常还原; 图片是以二进制存储的࿱…...

Istio实战:Istio Kiali部署与验证
目录 前言一、Istio安装小插曲 注意事项 二、Kiali安装三、Istio测试参考资料 前言 前几天我就开始捣腾Istio。前几天在执行istioctl install --set profiledemo -y 的时候老是在第二步就报错了,开始我用的istio版本是1.6.8。 后面查看k8s与istio的版本对应关系后发…...

ASPxGridView中使用PopupEditForm表单字段联动填充
c#中devexpress的控件ASPxGridView中使用PopupEditForm表单字段联动填充 //选择项目名称,自动填充项目编号 <Columns><dx:GridViewDataTextColumn FieldName"id" ReadOnly"True" VisibleIndex"0" Visible"False"…...

基于Pytorch的猫狗图片分类【深度学习CNN】
猫狗分类来源于Kaggle上的一个入门竞赛——Dogs vs Cats。为了加深对CNN的理解,基于Pytorch复现了LeNet,AlexNet,ResNet等经典CNN模型,源代码放在GitHub上,地址传送点击此处。项目大纲如下: 文章目录 一、问题描述二、数据集处理…...

flutter sliver 多种滚动组合开发指南
flutter sliver 多种滚动组合开发指南 视频 https://youtu.be/4mho1kZ_YQU https://www.bilibili.com/video/BV1WW4y1d7ZC/ 前言 有不少同学工作中遇到需要把几个不同滚动行为组件(顶部 appBar、内容固定块、tabBar 切换、tabBarView视图、自适应高度、横向滚动&a…...