怎样让自己网站的文章被百度收录嘉兴网站建设嘉兴

web/2025/10/1 19:06:26/文章来源:
怎样让自己网站的文章被百度收录,嘉兴网站建设嘉兴,青岛网站建设 上流,erp软件怎么用C之STL整理#xff08;1#xff09;之STL、vector、map、set数据结构初识 注#xff1a;整理一些突然学到的C知识#xff0c;随时mark一下 例如#xff1a;忘记的关键字用法#xff0c;新关键字#xff0c;新数据结构 C 的 STL C之STL整理#xff08;1#xff09;之ST…C之STL整理1之STL、vector、map、set数据结构初识 注整理一些突然学到的C知识随时mark一下 例如忘记的关键字用法新关键字新数据结构 C 的 STL C之STL整理1之STL、vector、map、set数据结构初识一、STL概要初识STL1、STL之容器1序列式容器2关联式容器 2、算法3、迭代器与遍历1对vector的遍历2对map的遍历3对set的遍历 4、仿函数5、适配器6、空间配置器 总结 提示本文为 C 中 vector、map、set的写法和举例 一、STL概要初识STL STL即Standard Template Library标准模板库是C标准库的一个重要组成部分。它是一个可复用的封装好的组件库同时也是一个包罗数据结构与算法的软件框架。STL为C程序员们提供了一个可扩展的应用框架高度体现了软件的封装性与可复用性。 STL包含了诸多在计算机科学领域里所常用的数据结构和基本算法提供了许多通用的模板类和函数用于实现常用的数据结构和算法。STL的一个重要特点是数据结构和算法的分离它允许程序员编写通用的代码即可适用于不同的数据类型而不必为每种类型编写不同的代码。 STL的六大组件包括容器Containers、迭代器Iterators、算法Algorithms、仿函数Functors、适配器Adapters和空间配置器Allocators。 其中 容器负责存储和管理数据每种容器相当于定义好的一个反映数据结构的类模板类如字符串string、向量vector、列表list、双端队列deque、栈stack、队列queue、优先队列priority_queue、集合set、映射map等。 迭代器则用于遍历容器中的元素。 算法是对容器中的数据进行操作的函数分为质变算法和非质变算法。 仿函数和行为类似于函数的对象可以作为算法的参数以定制算法的行为。 适配器用于修改容器或迭代器的接口以提供不同的功能。 空间配置器则负责内存的分配和释放。 1、STL之容器 容器存储数据的数据结构类如vector、deque、list等C的string数据结构也是一个封装好的容器。 算法对容器中的数据进行操作的函数模板如排序、查找等。 迭代器提供一种方法来访问容器中的元素。 仿函数行为类似函数的对象可以作为算法的参数来定制算法的行为。 适配器用于修改容器或迭代器的接口以提供不同的功能。 空间配置器负责内存分配和释放的组件通常不需要直接操作。 1序列式容器 序列式容器中的元素按照插入顺序进行存储。 Vector容器又叫动态数组支持随机访问。 #include vector #include iostream int main() { std::vectorint vec {1, 2, 3, 4, 5}; for (const auto element : vec) { std::cout element ; } return 0; }Deque容器双端队列支持在头部和尾部进行插入和删除操作。 #include deque #include iostream int main() { std::dequeint deq {1, 2, 3, 4, 5}; deq.push_front(0); // 在头部插入元素 deq.push_back(6); // 在尾部插入元素 for (const auto element : deq) { std::cout element ; } return 0; }List容器双向链表支持在任意位置进行插入和删除操作。 #include list #include iostream int main() { std::listint lst {1, 2, 3, 4, 5}; lst.push_front(0); // 在头部插入元素 lst.push_back(6); // 在尾部插入元素 for (const auto element : lst) { std::cout element ; } return 0; }2关联式容器 关联式容器中的元素通过关键字进行存储和访问。关联式容器是非线性的树结构更准确的说是二叉树结构。各元素之间没有严格的物理上的顺序关系也就是说元素在容器中并没有维持元素置入容器时的逻辑顺序。 Set/multiset容器集合存储唯一或重复的元素。 #include set #include iostream int main() { std::setint s {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}; for (const auto element : s) { std::cout element ; } return 0; }Map/multimap容器键值对集合存储不重复/重复的键及其对应的值。 #include map #include iostream int main() { std::mapstd::string, int m {{Alice, 25}, {Bob, 30}, {Charlie, 35}}; for (const auto pair : m) { std::cout pair.first : pair.second std::endl; } return 0; }2、算法 质变算法 质变算法会改变容器内元素的内容。 拷贝算法例如std::copy。 #include vector #include algorithm #include iostream #include iterator int main() { std::vectorint src {1, 2, 3, 4, 5}; std::vectorint dst(src.size()); std::copy(src.begin(), src.end(), dst.begin()); for (const auto element : dst) { std::cout element ; } return 0; }非质变算法 非质变算法不会改变容器内元素的内容。 查找算法例如std::find。 继续上面的内容讲解我们来看非质变算法的一个例子——std::find。 #include vector #include algorithm #include iostream int main() { std::vectorint vec {1, 2, 3, 4, 5}; auto it std::find(vec.begin(), vec.end(), 3); // 查找值为3的元素 if (it ! vec.end()) { std::cout Found: *it std::endl; } else { std::cout Not found std::endl; } return 0; }在这个例子中std::find算法在vec容器中查找值为3的元素并返回一个迭代器指向找到的元素。如果找不到则返回end()迭代器。 3、迭代器与遍历 迭代器提供了一种方法来遍历容器中的元素。上面的算法例子中已经展示了如何使用冒号遍历当然数组可以用[]遍历STL提供的新的遍历方法使用迭代器。迭代器类似于指针但提供了更安全的访问方式。STL提供了不同类型的迭代器如输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭代器等每种类型支持不同的操作集。它使得程序员能够遍历容器如vector、map、set等中的元素同时隐藏了底层数据结构的实现细节。迭代器就像是指向容器中元素的指针或引用但它比指针更加类型安全并且可以处理不同类型的容器。 语法是T类::iterator 迭代器指针名字 。 begin()这个接口返回一个指向容器第一个元素的迭代器。end()这个接口返回一个指向容器“尾后”位置的迭代器。注意这不是容器的最后一个元素而是最后一个元素再之后的位置。对于空容器begin() 返回的迭代器与 end() 返回的迭代器是相等的。 下面是对vector、map和set使用迭代器进行遍历的示例代码 1对vector的遍历 #include iostream #include vectorint main() {std::vectorint vec {1, 2, 3, 4, 5};// 使用迭代器遍历vectorfor (std::vectorint::iterator it vec.begin(); it ! vec.end(); it) {std::cout *it ;}std::cout std::endl;// 使用基于范围的for循环遍历vectorC11及以后for (int val : vec) {std::cout val ;}std::cout std::endl;return 0; }2对map的遍历 #include iostream #include mapint main() {std::mapstd::string, int myMap {{apple, 1}, {banana, 2}, {cherry, 3}};// 使用迭代器遍历mapfor (std::mapstd::string, int::iterator it myMap.begin(); it ! myMap.end(); it) {std::cout it-first : it-second std::endl;}// 使用基于范围的for循环遍历mapC11及以后for (const auto kv : myMap) {std::cout kv.first : kv.second std::endl;}return 0; }3对set的遍历 #include iostream #include setint main() {std::setint mySet {1, 3, 5, 7, 9};// 使用迭代器遍历setfor (std::setint::iterator it mySet.begin(); it ! mySet.end(); it) {std::cout *it ;}std::cout std::endl;// 使用基于范围的for循环遍历setC11及以后for (int val : mySet) {std::cout val ;}std::cout std::endl;return 0; }在上面的代码中可以看到对于vector、map和set我们都可以使用传统的迭代器进行遍历也可以使用C11及以后版本的基于范围的for循环进行遍历。基于范围的for循环更加简洁易于理解。但需要注意的是基于范围的for循环在遍历map时返回的是键值对key-value pair而不是单独的键或值。 注意map和set不支持用数组符号[]来遍历和索引。 4、仿函数 仿函数是行为类似于函数的对象。它们可以像函数一样被调用并可以作为算法的参数以定制算法的行为一般配合 algorithm 使用。例如std::lessT是一个仿函数用于比较两个对象是否一个小于另一个。 #include vector #include algorithm #include iostream struct IsEven { bool operator()(int n) const { return n % 2 0; } }; int main() { std::vectorint vec {1, 2, 3, 4, 5}; vec.erase(std::remove_if(vec.begin(), vec.end(), IsEven()), vec.end()); for (const auto element : vec) { std::cout element ; } return 0; }在这个例子中我们定义了一个仿函数IsEven它接受一个整数并检查它是否为偶数。然后我们使用std::remove_if算法和IsEven仿函数来移除vec中所有的偶数。 5、适配器 适配器用于修改容器或迭代器的接口以提供不同的功能。例如std::stack和std::queue就是基于std::deque或std::list等容器的适配器它们提供了栈和队列的接口。 #include stack #include iostream int main() { std::stackint stk; stk.push(1); stk.push(2); stk.push(3); while (!stk.empty()) { std::cout stk.top() ; stk.pop(); } return 0; }在这个例子中我们使用了std::stack适配器来创建一个栈并使用其提供的push、pop和top等方法来操作栈。 6、空间配置器 空间配置器负责内存的分配和释放。在STL中它通常被封装起来不需要直接操作。空间配置器允许STL库更高效地管理内存特别是在大量小对象的情况下。 总结

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

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

相关文章

开网站供免费下载用angular做的网站

项目描述 这是一款基于SpringBoot的饭店外卖平台的系统 模块描述 用户端 登录 首页 商家信息 点餐 菜品列表 下单 订单列表 账号下单列表 个人中心 个人资料 修改信息 评论管理 评论菜品 查看评论 打赏骑手 打赏骑手 管理员 登录 菜品管理 修改 下架 订单列表 下单记录 菜品管理…

免费制作logo的网站网站建设招标书范本

常用程序模式-LifeCycle模式 场景 当我们要监控一个组件的生命周期的时候,比如,启动时,启动后,关闭前,关闭后 实现 LifeCycleModule public interface LifeCycleModule {/*** 获取当前状态* return*/LifeCycle.St…

网站开发方向的工作wordpress 移动模板

KTV的竞争已经到了拼综合实力的阶段,向管理要效益、建立完善的KTV企业管理体系的重要性已经不言而喻了,建立全面的管理体系,可以促进KTV整体管理工作同步化、协调化,全面提升管理绩效,是KTV企业立足市场,基…

网站百度收录删除怎么设置wordpress底栏文字

前提:以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list,一个表头的list,一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…

上海工程建设招投标网站专门学习网站建设读什么专业

经常可以见到.说解决跨域只要返回加上"Access-Control-Allow-Origin"头部就行… 下面从实践中一步一步的理解. 1.环境准备: 1. node.js (http://nodejs.cn/) 自行下载配置, 完毕后(cmd)输入 node --version 若显示版本号则代表成功// ps: node(中的npm)方便下载资源…

上海建设银行网站上班时间wordpress 婚恋

Reindex如何实现索引重建? 滚动索引 批量复制 Reindex存在的问题 如果新的索引没有提前创建好,并指定字段类型,那么重建后的新索引类型极有可能会和旧的索引不一致,因为ES他会推断类型,而推断错误率从实战来说那是…

太原建立网站北京百度关键词优化

P1 Redis企业实战课程介绍 P2 短信登录 导入黑马点评项目 首先在数据库连接下新建一个数据库hmdp,然后右键hmdp下的表,选择运行SQL文件,然后指定运行文件hmdp.sql即可(建议MySQL的版本在5.7及以上): 下面这…

珠海响应式网站建设公司asp网站镜像代码

一、题目 求1/22/33/4……n-1/n的和 如图&#xff1a; 二、思路分析 1、1/2、2/3、3/4……可以用(i/i1) 2、设置一个函数&#xff0c;求数的相加之和 三、代码截图【带注释】 四、源代码【带注释】 #include <stdio.h> int main() { int num; printf("输入…

佛山网站的建设简述seo的概念

文章目录1. 题目2. 解题1. 题目 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。 实现 SmallestInfiniteSet 类&#xff1a; SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。int popSmallest() 移除 并返回该无限集中的最小整数。void ad…

重庆1000元网站建设抖音账号权重查询入口

这本书短短的100多页&#xff0c;很象是一篇文章。但是指出的很多问题的确容易出现在笔试的改错题中--------------------------------------------------------------------第1章 词法陷阱1.1 和 1.3 词法分析的"贪心法则"编译器从左到右读入字符&#xff0c;每个符…

外贸展示型模板网站模板池州建行网站

导言&#xff1a; ._locked勒索病毒&#xff0c;一种近年来日益猖獗的网络安全威胁&#xff0c;已经引起了全球范围内的广泛关注。该病毒通过电子邮件附件、恶意网站和漏洞利用等多种方式传播&#xff0c;一旦感染系统&#xff0c;就会加密受感染设备上的所有文件&#xff0c;…

搜狗提交网站入口国家企业信用公示信息系统(湖南)

1 mongo同步数据到mysql中 我想把51万8400的计算出来的八字信息&#xff0c;从mongo同步到mysql&#xff0c;看看在mysql中运行会怎么样。 选择mongodb input&#xff0c;这个是在Big Data中。 填写数据库和表 获取到mongodb的字段,获取到mongo的字段&#xff0c;如果某个字段…

外国扁平化网站乌克兰俄罗斯

不止杭州&#xff0c;还在广州、南京、成都...更多城市蔓延开来 各位有没有想过&#xff0c;为什么会有“保房价” 我想很多人最先听说这个词还是来自杭州业主 的确&#xff0c;作为曾经受房价影响最大的一个城市&#xff0c;杭州业主们可以说是最深谙房价上涨逻辑的那泼人了…

上海网站制作网络推广为企业做一件小事

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

装饰工程网站模板开源php网站开发

题目 给你一个下标从 1 开始、长度为 n 的整数数组 nums 。 现定义函数 greaterCount &#xff0c;使得 greaterCount(arr, val) 返回数组 arr 中 严格大于 val 的元素数量。 你需要使用 n 次操作&#xff0c;将 nums 的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操…

威海网站设计公司珠海企业医疗网站建设

其实也是在easyhadoop做第二次重构的时候用到了这个嵌入式的webserver去做服务器状态的监控&#xff0c;可以单独摘出来写个东西。思路主要是用python脚本获取linux服务器的各种状态信息&#xff0c;然后用webserver的方式&#xff0c;以json数据发给http&#xff0c;主控节点去…

哈尔滨网站制作推广如何上传网站模板

关于文件编码的检测&#xff0c;很多人建议 mb_detect_encoding 检测&#xff0c;可是不知为何不成功&#xff0c;什么都没输出、看到有人写了个增强版&#xff0c;用 BOM 判断的&#xff0c;我果断就无视了&#xff0c;这东西完全不靠谱、最终根据PHP手册里 mb_detect_encodin…

做网站有生意吗百度关键词搜索排名查询

前言 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱…

有什么设计网站企业建设网站有用么

一、前言 Redis提供了数据变化的通知事件&#xff0c;可以实时监测key和value的变化&#xff0c;客户端可以通过订阅相关的channel来接收这些通知事件&#xff0c;然后做相应的自定义处理&#xff0c;详细的介绍可以参考官方文档Redis keyspace notifications | Docs 使用Red…

余姚市建设局网站推广策划案怎么写

目录 一、socket创建流程。 二、I/O多路复用 三、服务器开发常见的并发模型 1、模型一:单线程——无IO复用 1.1 模型分析 2、模型二:单线程accept + 多线程读写业务(无IO复用) 模型分析 3、模型三:单线程多路IO复用 模型分析 4、模型四࿱