当前位置: 首页 > news >正文

华亭县门户网站艾瑞网的网站架构

华亭县门户网站,艾瑞网的网站架构,关于我的大学的网站建设模板,外包网络安全技术措施这是关于一个普通双非本科大一学生的C的学习记录贴 在此前#xff0c;我学了一点点C语言还有简单的数据结构#xff0c;如果有小伙伴想和我一起学习的#xff0c;可以私信我交流分享学习资料 那么开启正题 今天分享的是关于set和map的知识点 1.关联式容器 在前面#…这是关于一个普通双非本科大一学生的C的学习记录贴 在此前我学了一点点C语言还有简单的数据结构如果有小伙伴想和我一起学习的可以私信我交流分享学习资料 那么开启正题 今天分享的是关于set和map的知识点 1.关联式容器 在前面我们已经学习了STL的部分容器如vectorlistdeque这些容器被称为序列式容器因为底层是线性序列的数据结构里面存储的是元素本身那么什么是关联式容器呢 关联式容器也是用来存储数据的与序列式容器不同的是其里面存储的是key value结构的键值对在数据检索时比序列式容器效率更高 2.键值对 键值对是用来表示具有一一对应关系的一种结构该结构中一般只包含两个成员变量key和valuekey代表键值value表示与key对应的信息 如假设我们现在要建立一个英汉互译的字典那么该字典中必然有英文单词与其对应的信息而且它们是一一对应的关系即通过单词可以找到其对应的中文 templateclass T1, class T2 struct paic {typedef T1 first_type;typedef T2 second_tyde;T1 first;T2 second;paic():first(T1()),second(T2()){}paic(const T1 a, const T2 b):first(a),frist(b){} }; 3.树形结构的关联式容器 根据应用场景不同STL实现了两种不同结构的管理式容器树型结构与哈希结构树形结构的关联式容器主要有四种mapsetmultimapmultiset这四种容器的公共特点是使用平衡搜索树即红黑树作为其底层的结果容器中的元素是一个有序的序列 4.set 4.1关于set 1.与map/multimpa中存储真正的键值对keyvalue不同set中只放value但在底层实际存放的是valuevalue构成的键值对 2.set中插入元素时直接插入value即可不需要构造键值对 3.set中的元素不可以重复multi_set不同因此可以利用set进行去重 4.使用set的迭代器遍历set的元素可以得到有序序列 5.set中查找元素的时间复杂度为O(logN) 6.set在底层是用二叉搜索树红黑树实现的 4.2set的使用 4.2.1set的构造 set (const Compare comp Compare(), const Allocator Allocator() ); //构造空的set set ( const setKey,Compare,Allocator x); //set的拷贝构造 4.2.2set的修改操作 pairiterator,bool insert ( const value_type x ) //在set中插入元素x实际插入的是x, x构成的 键值对如果插入成功返回该元素在set中的 位置true,如果插入失败说明x在set中已经 存在返回x在set中的位置falsevoid erase ( iterator position ) //删除set中position位置上的元素void swap ( setKey,Compare,Allocator st ); //交换set中的元素void clear ( ) //将set中的元素清空iterator find ( const key_type x ) const //返回set中值为x的元素的位置 4.2.3set的迭代器 set迭代器用法很简单这里不在给出后面模拟实现再详细理解底层是如何实现的 4.2.4举例代码 void Print(setint s) {setint::iterator it s.begin();while (it ! s.end()){cout *it ;it;}cout endl; }void Test_set1() {setint s;s.insert(1);s.insert(9);s.insert(3);s.insert(1);s.insert(1);Print(s);s.erase(1);Print(s);setint::iterator pos s.find(5);s.erase(5);pos find(s.begin(), s.end(), 5);if (pos ! s.end()){s.erase(pos);} } 5.map 5.1关于map 1.在map中键值key通常用于排序和惟一地标识元素而值value中存储与此键值key关联的 内容。键值key和值value的类型可能不同并且在map的内部key与value通过成员类型 value_type绑定在一起为其取别名称为pair 2.在内部map中的元素总是按照键值key进行比较排序的 3.map支持下标访问符即在[]中放入key就可以找到与key对应的value 4.map通常被实现为二叉搜索树红黑树 5.2的使用 5.2.1map的构造 map() //构造一个空的map5.2.2map的容量与元素访问 bool empty ( ) const //检测map中的元素是否为空是返回 //true否则返回falsesize_type size() const //返回map中有效元素的个数mapped_type operator[] (const key_type k) //返回去key对应的value5.2.3map的修改操作 pairiterator,bool insert ( const value_type x ) //在map中插入键值对x注意x是一个键值 对返回值也是键值对iterator代表新插入 元素的位置bool代表释放插入成功void erase ( iterator position ) //删除position位置上的元素size_type erase ( const key_type x ) //删除键值为x的元素void erase ( iterator first, iterator last ) //删除[first, last)区间中的元素void swap ( mapKey,T,Compare,Allocator mp ) //交换两个map中的元素void clear ( ) //将map中的元素清空iterator find ( const key_type x ) //在map中插入key为x的元素找到返回该元 素的位置的迭代器否则返回end 5.2.4map的迭代器 map迭代器用法很简单这里不在给出后面模拟实现再详细理解底层是如何实现的 5.2.5举例代码 void Test_map1() {mapstring, int m;m.insert(make_pair(苹果, 1));m.insert(make_pair(香蕉, 3));m.insert(make_pair(桃子, 5));m.insert(make_pair(樱桃, 4));mapstring, int::iterator it m.begin();while (it ! m.end()){cout it-first : it-second endl;it;}cout endl; } 新手写博客有不对的位置希望大佬们能够指出也谢谢大家能看到这里让我们一起学习进步吧
http://www.pierceye.com/news/665511/

相关文章:

  • 网站开发安全模块方案个人网站搭建软件
  • 重庆建设招标造价信息网站个人网站建设与维护
  • 网站备案用户名忘了怎么办嘉兴做外贸网站的公司
  • 1688网站的特点网站制作器手机版下载
  • 兖州网站开发做一个中英文网站多少钱
  • wordpress怎么做网盘站好看的页面图片
  • 建设网站深圳罗湖安徽合肥做网站
  • 一级a做爰片免费网站下载网站快慢由什么决定
  • 网页设计与网站建设 郑州大学网络购物网站备案
  • 美观网站建设哪家好优化大师最新版下载
  • 外贸品牌网站制作wordpress 微信主题
  • 旅游网站开发需求分析网站的根目录的路径
  • easyUI网站开发docker wordpress mysql
  • dede手机网站模板下载黄冈做网站
  • 诸城网站建设葛小燕现在搜索引擎哪个比百度好用
  • 嘉兴做微网站多少钱注册网页需要多少钱
  • 论坛类网站设计大型网站系统解决方案
  • 网站建设中页面设计广告策划书籍
  • 云南省建设工程投标中心网站网页的制作步骤是什么
  • 保定网站设计概述更换动易网站模板的方法
  • 新手如何注册网站域名做 理财网站有哪些
  • 南宁快速建站模板企业网站的开发与应用
  • 网站运营适合什么样的人做企业宣传及介绍ppt
  • 怎么样网站开源小升初在线做试卷的网站
  • 中国建设银行章丘支行网站网站排版设计欣赏
  • 儿童摄影网站建设专业做网站制作自助建站系统
  • 注册做网站的公司有哪些wordpress 4.1 下载
  • 用ps做美食网站一个网站多少钱?
  • 网站建设 试题揭阳专业做网站公司
  • 手机上怎么创建自己的网站河南企业网站优化