威海高区建设局网站服务态度 专业的网站建设

pingmian/2025/10/8 15:05:27/文章来源:
威海高区建设局网站,服务态度 专业的网站建设,保定网站设计公司排名,江苏专业做网站的公司有哪些目录 一.map映射1.简介2.包含头文件及其初始化3.基本操作4.用迭代器正反遍历5.添加元素的四种方式6.元素的访问7.对比unordered_map#xff0c;multimap 二.set集合1.简介2.包含头文件及其初始化3.基本操作4.元素的访问5.set#xff0c;multiset#xff0c;unordered_setmultimap 二.set集合1.简介2.包含头文件及其初始化3.基本操作4.元素的访问5.setmultisetunordered_setunordered_multiset 比较 三.pair二元组1.简介2.包含头文件及其初始化3.访问与修改 一.map映射 1.简介 在C的STLStandard Template Library中map是一个非常有用的关联容器。它提供了一种键-值对的数据结构其中的元素按照键的顺序进行排序并且每个键是唯一的。本文将详细介绍C STL中map的使用方法和一些常见操作。 2.包含头文件及其初始化 1头文件 #include map2初始化方法 可以使用以下方式声明和初始化一个map对象 mapKeyType, ValueType myMap; // 声明一个空的map mapstring,string mp; mapstring,int mp; mapint,node mp;//node是结构体类型也可以使用已有的键值对初始化map对象 std::mapKeyType, ValueType myMap {{key1, value1},{key2, value2},{key3, value3} };3.基本操作 代码含义mp.find(key)返回键为key的映射的迭代器 注意用find函数来定位数据出现位置它返回一个迭代器。当数据存在时返回数据所在位置的迭代器数据不存在时返回mp.end()mp.erase(it)删除迭代器对应的键和值mp.erase(key)根据映射的键删除键和值mp.erase(first,last)删除左闭右开区间迭代器对应的键和值mp.size()返回映射的对数mp.clear()清空map中的所有元素mp.insert()插入元素插入时要构造键值对mp.empty()如果map为空返回true否则返回falsemp.begin()返回指向map第一个元素的迭代器mp.end()返回指向map尾部的迭代器最后一个元素的下一个地址mp.rbegin()返回指向map最后一个元素的反向迭代器mp.rend()返回指向map第一个元素前面(上一个的反向迭代器地址mp.count(key)查看元素是否存在存在返回1不存在返回0mp.lower_bound()返回一个迭代器指向键值 key的第一个元素只比较键mp.upper_bound()返回一个迭代器指向键值 key的第一个元素只比较键 接下来将给出相对应代码来帮助理解 1使用insert()函数添加单个键值对 myMap.insert(std::make_pair(key, value));2使用下标运算符[ ]添加或更新键值对 myMap[key] value;3使用erase()函数删除指定键的元素 myMap.erase(key);4使用find()函数查找指定键的元素返回指向该元素的迭代器 auto it myMap.find(key); if (it ! myMap.end()) {// 找到了该键对应的元素ValueType value it-second; }5使用lower_bound()函数查找大于等于指定键的第一个元素的迭代器 auto it myMap.lower_bound(key); if (it ! myMap.end()) {// 找到了大于等于指定键的第一个元素KeyType foundKey it-first;ValueType foundValue it-second; }6使用upper_bound()函数查找大于指定键的第一个元素的迭代器 auto it myMap.upper_bound(key); if (it ! myMap.end()) {// 找到了大于指定键的第一个元素KeyType foundKey it-first;ValueType foundValue it-second; }4.用迭代器正反遍历 正向遍历 mapint,int mp; mp[1] 2; mp[2] 3; mp[3] 4; auto it mp.begin(); while(it ! mp.end()) {cout it-first it-second \n;it ; }反向遍历 mapint,int mp; mp[1] 2; mp[2] 3; mp[3] 4; auto it mp.rbegin(); while(it ! mp.rend()) {cout it-first it-second \n;it ; }5.添加元素的四种方式 //先声明 mapstring,string mp; mp[学习] 看书;//第一种 mp[玩耍] 打游戏; mp.insert(make_pair(vegetable,蔬菜));//第二种 mp.insert(pairstring,string(fruit,水果));//第三种 mp.insert({hahaha,wawawa});//第四种6.元素的访问 1迭代器访问 int main() {std::mapint, std::string myMap {{1, Alice},{2, Bob},{3, Charlie}};// 使用迭代器进行遍历和访问for (auto it myMap.begin(); it ! myMap.end(); it) {int key it-first; // 访问键string value it-second; // 访问值cout key : value std::endl;}return 0; }2智能指针访问 for(auto i : mp) cout i.first i.second endl;//键值3单个访问 mapchar,int::iterator it mp.find(a); cout it - first it-second \n;4c17特性才具有 for(auto [x, y] : mp)cout x y \n; //x,y对应键和值7.对比unordered_mapmultimap 1.mapmap是一个有序的关联容器其中的元素按照键的顺序进行排序。每个键是唯一的不允许重复。map使用红黑树实现插入和查找操作的时间复杂度为O(log n)。 2.unordered_mapunordered_map是一个无序的关联容器其中的元素没有特定的顺序。每个键是唯一的不允许重复。unordered_map使用哈希表实现插入和查找操作的平均时间复杂度为O(1)最坏情况下为O(n)。也是用哈希表实现 3.multimapmultimap是一个有序的关联容器其中的元素按照键的顺序进行排序。允许键重复即可以有相同的键。multimap使用红黑树实现插入和查找操作的时间复杂度为O(log n)。 4.unordered_multimapunordered_multimap是一个无序的关联容器其中的元素没有特定的顺序。允许键重复即可以有相同的键。unordered_multimap使用哈希表实现插入和查找操作的平均时间复杂度为O(1)最坏情况下为O(n)。 对比优劣 1map和unordered_map都提供了快速的查找操作但是在插入和删除操作上unordered_map通常比map更快。 2unordered_map的元素没有特定的顺序适用于不需要保持顺序的场景。而map的元素是有序的适用于需要按照键的顺序进行访问的场景。 3multimap和unordered_multimap允许键重复适用于需要存储相同键的场景。multimap保持元素的有序性而unordered_multimap没有特定的顺序。 4在空间占用上哈希表实现的容器(unordered_map和unordered_multimap)通常需要更多的内存而红黑树实现的容器(map和multimap)通常需要较少的内存。 选择使用哪种容器取决于具体的需求。如果需要有序访问或者需要保持元素的有序性可以选择map或multimap。如果对元素的顺序没有特定要求但需要快速的插入和查找操作可以选择unordered_map或unordered_multimap。 二.set集合 1.简介 在C的STLStandard Template Library中set是一个非常有用的关联容器。它提供了一种有序集合的数据结构其中的元素按照键的顺序进行排序并且每个键是唯一的。本文将详细介绍C STL中set的使用方法和一些常见操作。 2.包含头文件及其初始化 1头文件 #include set2初始化 std::setKeyType mySet; // 声明一个空的set std::setKeyType mySet {element1, element2, element3};//也可以使用已有的元素初始化set对象3.基本操作 代码含义s.begin()返回set容器的第一个元素的地址迭代器s.end()返回set容器的最后一个元素的下一个地址迭代器s.rbegin()返回逆序迭代器指向容器元素最后一个位置s.rend()返回逆序迭代器指向容器第一个元素前面的位置s.clear()删除set容器中的所有的元素,返回unsigned int类型s.empty()判断set容器是否为空s.insert()插入一个元素s.size()返回当前set容器中的元素个数erase(iterator)删除定位器iterator指向的值erase(first,second删除定位器first和second之间的值左闭右开erase(key_value)删除键值key_value的值s.find(元素)查找set中的某一元素有则返回该元素对应的迭代器无则返回ends.lower_bound(k)返回大于等于k的第一个元素的迭代器s.upper_bound(k)返回大于k的第一个元素的迭代器访问 接下来将给出相对应代码来帮助理解 1.插入元素 mySet.insert(element); mySet.insert(beginIterator, endIterator);2.删除元素 mySet.erase(value); mySet.erase(beginIterator, endIterator);//注意左闭右开3.查找元素 auto it mySet.find(value); if (it ! mySet.end()) {// 找到了该值对应的元素 }auto it mySet.lower_bound(value); if (it ! mySet.end()) {// 找到了大于等于指定值的第一个元素 }auto it mySet.upper_bound(value); if (it ! mySet.end()) {// 找到了大于指定值的第一个元素 }4.元素的访问 1迭代器访问 for(setint::iterator its.begin();it!s.end();it)cout*it ;2智能指针 for(auto i : s)coutiendl;3访问最后一个元素 //第一种 cout*s.rbegin()endl;//第二种 setint::iterator iter s.end(); iter--; cout(*iter)endl; //打印2;//第三种 cout*(--s.end())endl;5.setmultisetunordered_setunordered_multiset 比较 1.set有序的关联容器每个元素都是唯一的。使用红黑树实现插入和查找的时间复杂度为O(log n)。元素按照键的顺序进行排序。 2.multiset有序的关联容器允许元素重复。使用红黑树实现插入和查找的时间复杂度为O(log n)。元素按照键的顺序进行排序。 3.unordered_set无序的关联容器每个元素都是唯一的。使用哈希表实现插入和查找的平均时间复杂度为O(1)最坏情况下为O(n)。元素没有特定的顺序。 4.unordered_multiset无序的关联容器允许元素重复。使用哈希表实现插入和查找的平均时间复杂度为O(1)最坏情况下为O(n)。元素没有特定的顺序。 总结 set和multiset是有序的元素按照键的顺序进行排序multiset允许元素重复。 unordered_set和unordered_multiset是无序的元素没有特定的顺序unordered_multiset允许元素重复。 set和unordered_set的查找和插入操作的时间复杂度较低适用于需要快速查找和插入的场景。 multiset和unordered_multiset允许元素重复适用于需要存储相同键的场景。 unordered_set和unordered_multiset在插入和查找操作上通常比set和multiset更快但它们没有保持元素的有序性。 三.pair二元组 1.简介 在C的STLStandard Template Library中pair是一个非常有用的模板类。它提供了一种简单的方式来存储一对值即键值对。pair可以用于各种场景例如在容器中存储关联的数据返回多个值等。本文将详细介绍C STL中pair的使用方法和一些常见操作。 2.包含头文件及其初始化 1头文件 #include utility2初始化 pairType1, Type2 myPair; // 声明一个空的pair pairType1, Type2 myPair(value1, value2); // 使用给定的值初始化pair myPair std::make_pair(value1, value2); // 使用make_pair函数创建pair并赋值3.访问与修改 //定义结构体数组 pairint,intp[20]; for(int i 0; i 20; i) {//和结构体类似first代表第一个元素second代表第二个元素cout p[i].first p[i].second; }pair可以作为容器例如vector、list、map等的元素使用。这样可以方便地存储和访问关联的数据。 下面是一个使用pair作为容器元素的示例代码 int main() {vectorpairint, string myVector;// 添加pair元素myVector.push_back(make_pair(1, Alice));myVector.push_back(make_pair(2, Bob));myVector.push_back(make_pair(3, Charlie));// 遍历输出pair元素for (const auto pair : myVector) {cout Key: pair.first , Value: pair.second std::endl;}return 0; }在上述示例代码中我们创建了一个vector容器myVector其中的元素是pair类型包含一个整数和一个字符串。 然后我们使用push_back()函数向容器中添加了一些pair元素。 最后我们使用范围遍历来输出容器中的pair元素。

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

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

相关文章

慈溪市规划建设网站wordpress安装上传文件

本篇文章借鉴于此处,如果只需显示树形组件,可以直接访问该博主文章。我这里对他的组件做了扩展,增加了点击展开和关闭操作,话不多说上代码。 1.数据结构 const data {label: 根目录,children: [{label: 目录A,children: [// 叶…

赛事竞猜网站开发百度上的网站怎么做

社区网站类场景下静态资源处理 场景描述 解决的问题 本实践通过搭建WordPress博客系统,向用户展示如何l 静态资源(图片、视频等)CDN访问加速和刷新 将图片、附件等静态资源上传到阿里云OSS,并通过阿里l OSS对象跨国际区域进行复…

镇江房产网站建设做网店网站

Nginx学习:代理模块(四)响应头与SSL 响应头相关的配置也和我们之前在 FastCGI 系列学过的响应头配置是类似的,这一块也比较简单。而另一部分则是 Proxy 模块另一个特有的功能,SSL 相关的配置。不过这一块吧&#xff0c…

做网站有意思吗广州网站设计成功刻

目录 引言 统一异常处理 异常全部监测 引言 将异常处理逻辑集中到一个地方,可以避免在每个控制器或业务逻辑中都编写相似的异常处理代码,这降低了代码的冗余,提高了代码的可维护性统一的异常处理使得调试和维护变得更加容易,通…

中小学图书馆网站建设做网站电话

我只是一个搬运工 更改密码远程连接

湖北省建设厅官方网站石家庄网站推广专家

ares-sdk初始开发测试使用的是oracle数据库,由于宁波通商的特殊需要,必须把数据库环境从oracle转向mysql。 现对转换过程中出现的问题及经验总结如下:主键生成策略创建一个专门记录序列的表sequence,记录有当前序列号,序列的间隔如1创建记录当…

企业为什么要建站台呢整站seo服务

二叉树层序遍历 题目链接:102. 二叉树的层序遍历 思路:利用队列来存储遍历的节点,同时要定义size来保存当前层的节点个数。 时间复杂度O(n) 层序遍历的一般写法,通过一个 while 循环控制从上向下一层层遍历,for 循…

网站和微信公众号建设海南教育学会网站建设

目录 前言 1.下载Gitlab 2.安装Gitlab 3.启动Gitlab 4.安装cpolar 5. 创建隧道配置访问地址 6.固定GitLab访问地址 7. 配置二级子域名 8. 测试访问二级子域名 前言 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基…

小额贷网站建设wordpress顶部工具栏修改logo

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

海口智能建站详情wordpress 后台很慢

目录 (1)背包问题 (2)最长公共子串 (3)小结 本章内容: 学习动态规划,它将问题分成小问题,并先着手解决这些小问题。学习如何设计问题的动态规划解决方案。 &#xff…

农业推广网站建设软文营销的技巧有哪些?

1、CPU 中央处理器,简称 CPU(Central Processing Unit),中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。 电子计算机三大核心部件就是CPU…

南宁建设银行缴费网站临沂网站建设培训班

论文地址;[1512.09300] Autoencoding beyond pixels using a learned similarity metric (arxiv.org) / 一、Introduction 主要讲了深度学习中生成模型存在的问题,即常用的相似度度量方式(使用元素误差度量)对于学习良好的生成模型存在一定…

构建html5博客网站惠州做网站首选惠州邦

道可云元宇宙每日简报(2024年4月8日)讯,今日元宇宙新鲜事有: 六部门:支持内蒙古人工智能产业建设 国家发展改革委等六部门发布《关于支持内蒙古绿色低碳高质量发展若干政策措施的通知》。其中提出,加快推…

西安新能源网站建设服装设计网站有哪些

在stm32裸机工程中的Middlewares目录添加freeRtos源码 在裸机工程中的main中调用freertos接口

平板上做网站的软件上海做网站哪里好

这里讲一下,如何使用vue控制多行文字展开收起(也叫控制文字展开隐藏)。效果:这里设置了控制三行,如果超过三行会展示,“显示更多” 超出文字显示省略号。点击“显示更多”会展开所有文案,按钮变成“收起”(未超出三行的…

称心的常州网站建设互联网推广渠道

在模拟器上运行 ios 项目的时候,图片显示不出来。真机可以显示 原因:ios默认启用 impeller(新渲染引擎),不知道为什么项目不能使用。 禁用掉即可, 原因以及解决都在下面的链接里面了 Impeller rendering …

品牌网站建设的作用广州公司注册流程详解

文章目录 0 前言2 开发简介3 数据集4 实现技术4.1 系统架构4.2 开发环境4.3 疫情地图4.3.1 填充图(Choropleth maps)4.3.2 气泡图 4.4 全国疫情实时追踪4.6 其他页面 5 关键代码最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据疫…

电子商务网站建设商城网站深圳家具定制

一、说明 变形金刚是一种深度学习架构,为人工智能的发展做出了杰出贡献。这是人工智能和整个技术领域的一个重要阶段,但也有点复杂。截至今天,变形金刚上有很多很好的资源,那么为什么要再制作一个呢?两个原因&#xff…

网站建设领域的基本五大策略要学会网站首页的布局

未来的你,我亲爱的女孩,愿此刻无忧无虑,开心,快乐… 工具库介绍 Apache Commons Lang 3(通常简称为Commons Lang 3)是Apache Commons项目中的一个Java工具库,它提供了一系列实用的工具类和方法…