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

长沙百度网站推广优化微信营销软件功能

长沙百度网站推广优化,微信营销软件功能,公司网站建设方案报告,5 网站建设进度表目录 一、关联式容器二、键值对三、树形结构的关联式容器3.1 set3.1.1 set介绍3.1.2 set的模板参数列表3.1.3 set的使用实例 3.2 map3.2.1 map的介绍3.2.2 map的参数列表说明3.2.3 map的operator[]#xff08;very very very好用#xff0c;map的精华#xff09;3.2.4 map的… 目录 一、关联式容器二、键值对三、树形结构的关联式容器3.1 set3.1.1 set介绍3.1.2 set的模板参数列表3.1.3 set的使用实例 3.2 map3.2.1 map的介绍3.2.2 map的参数列表说明3.2.3 map的operator[]very very very好用map的精华3.2.4 map的insert3.2.5 map中对value的修改3.2.6 map的使用实例 3.3 multiset3.3.1 multiset的介绍 3.4 multimap3.4.1 multimap的介绍 一、关联式容器 前面我们已经接触过STL中的部分容器比如vector、list、deque、forward_list(C11)等这些容器统称为序列式容器因为其底层为线性序列的数据结构里面存储的是元素本身。那什么是关联式容器它与序列式容器有什么区别 关联式容器也是用来存储数据的它与序列式容器不同的是其里面存储的是key, value结构的键值对在数据检索时比序列式容器效率更高。 二、键值对 用来表示具有一一对应关系的一种结构该结构中一般只包含两个成员变量key和valuekey代表键值value表示与key对应的信息。例如字典根据英文能查中文根据中文也能查英文。 键值对pair1的SGI源码 template class T1, class T2 struct pair {typedef T1 first_type;typedef T2 second_type;T1 first;T2 second;pair(): first(T1()), second(T2()){}pair(const T1 a, const T2 b): first(a), second(b){} };三、树形结构的关联式容器 根据应用场景的不同STL总共实现了两种不同结构的管理式容器树型结构与哈希结构。树型结构的关联式容器主要有四种map、set、multimap、multiset。这四种容器的共同点是使用平衡搜索树(即红黑树)作为其底层结果容器中的元素是一个有序的序列。 3.1 set 3.1.1 set介绍 set是按照一定次序存储元素的容器。在set中元素的value也标识它(value就是key类型为T)并且每个value必须是唯一的。 set中的元素不能在容器中修改(元素总是const)但是可以从容器中插入或删除它们。在内部set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。set容器通过key访问单个元素的速度通常比unordered_set容器慢但它们允许根据顺序对子集进行直接迭代。set的底层是二叉搜索树(红黑树)。 关于set值得注意的是 与map/multimap不同map/multimap中存储的是真正的键值对key, valueset中只放value但在底层实际存放的是由value, value构成的键值对。set中插入元素时只需要插入value即可不需要构造键值对。set中的元素不可以重复(因此可以使用set进行去重)。使用set的迭代器遍历set中的元素可以得到有序序列。set中的元素默认按照小于来比较。set中查找某个元素时间复杂度为 l o g 2 n log_2 n log2​nset中的元素不允许修改(为什么?)因为如果修改了就不一定符合二叉搜索树(红黑树)的特性了。set中的底层是二叉搜索树(红黑树)。 3.1.2 set的模板参数列表 T: set中存放元素的类型实际在底层存储value, value的键值对。 Compareset中元素默认按照小于来比较 Allocset中元素空间的管理方式使用STL提供的空间配置器管理。 3.1.3 set的使用实例 int main() {setint set;int arr[] { 1,5,3,6,8,7,6,4,5,2,3,1 };for (const auto e : arr){set.insert(e);}std::setint::iterator it set.begin();while (it ! set.end()){cout *it ;it;}cout endl;return 0; }3.2 map 3.2.1 map的介绍 map是关联容器它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。在map中键值key通常用于排序和惟一地标识元素而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同并且在map的内部key与value通过成员类型 value_type绑定在一起为其取别名称为pair: typedef pairconst key, T value_type;在内部map中的元素总是按照键值key进行比较排序的。map中通过键值访问单个元素的速度通常比unordered_map容器慢但map允许根据顺序对元素进行直接迭代(即对map中的元素进行迭代时可以得到一个有序的序列)。map支持下标访问符即在[]中放入key就可以找到与key对应的value。map的底层是红黑树。 3.2.2 map的参数列表说明 key: 键值对中key的类型 T 键值对中value的类型 Compare: 比较器的类型map中的元素是按照key来比较的缺省情况下按照小于来比较一般情况下(内置类型元素)该参数不需要传递如果无法比较时(自定义类型)需要用户自己显式传递比较规则(一般情况下按照函数指针或者仿函数来传递)。 Alloc通过空间配置器来申请底层空间不需要用户传递除非用户不想使用标准库提供的空间配置器。 3.2.3 map的operator[]very very very好用map的精华 值得注意的是 注意在元素访问时有一个与operator[]类似的操作at()(该函数不常用)函数都是通过key找到与key对应的value然后返回其引用不同的是当key不存在时operator[]用默认value与key构造键值对然后插入返回该默认valueat()函数直接抛异常。 3.2.4 map的insert 3.2.5 map中对value的修改 元素的修改直接就是利用operator[]的返回值进行修改即可。 3.2.6 map的使用实例 void Test() {string arr[] { 苹果,苹果,香蕉,雪梨,草莓 };mapstring, int mp;for (const auto e : arr){mp[e];}for (const auto p : mp){cout p.first : p.second endl;}}int main() {Test();return 0; }map总结 map中的的元素是键值对。map中的key是唯一的并且不能修改。默认按照小于的方式对key进行比较。map中的元素如果用迭代器去遍历可以得到一个有序的序列按key值有序。map的底层为平衡搜索树(红黑树)查找效率比较高 O ( l o g 2 N ) O(log_2 N) O(log2​N)。支持[]操作符operator[]中实际进行插入查找。 3.3 multiset 3.3.1 multiset的介绍 multiset是按照特定顺序存储元素的容器其中元素是可以重复的。在multiset中元素的value也会识别它(因为multiset中本身存储的就是value, value组成的键值对因此value本身就是keykey就是value类型为T). multiset元素的值不能在容器 中进行修改(因为元素总是const的)但可以从容器中插入或删除。在内部multiset中的元素总是按照其内部比较规则(类型比较)所指示的特定严格弱排序准则进行排序。multiset容器通过key访问单个元素的速度通常比unordered_multiset容器慢但当使用迭代器遍历时会得到一个有序序列。multiset底层结构为二叉搜索树(红黑树)。 注意 multiset中在底层中存储的是value, value的键值对。multiset的插入接口中只需要插入即可不会去重。与set的区别是multiset中的元素可以重复set是中value是唯一的。使用迭代器对multiset中的元素进行遍历可以得到有序的序列。multiset中的元素不能修改。在multiset中找某个元素时间复杂度为 O ( l o g 2 N ) O(log_2 N) O(log2​N)。multiset的作用可以对元素进行排序。 multiset的使用和set一摸一样只是multiset可以存在重复的元素仅此而已其它功能完全没有区别。 3.4 multimap 3.4.1 multimap的介绍 Multimaps是关联式容器它按照特定的顺序存储由key和value映射成的键值对key,value其中多个键值对之间的key是可以重复的。在multimap中通常按照key排序和惟一地标识元素而映射的value存储与key关联的内容。key和value的类型可能不同通过multimap内部的成员类型value_type组合在一起value_type是组合key和value的键值对: typedef pairconst Key, T value_type;在内部multimap中的元素总是通过其内部比较对象按照指定的特定严格弱排序标准对key进行排序的。multimap通过key访问单个元素的速度通常比unordered_multimap容器慢但是使用迭代器直接遍历multimap中的元素可以得到关于key有序的序列。multimap在底层用二叉搜索树(红黑树)来实现。 注意multimap和map有两点不同 一、map中的key是唯一的而multimap中key是可以重复的。 二、multimap中没有重载operator[]原因是multimap对应的值不唯一所以没办法重载operator[]。 multimap的其他接口的使用和map是完全一样的。 好啦以上就是今天想要跟大家分享的全部内容啦你学会了嘛如果感觉有所收获你就点一下小心心点点关注呗后期还会持续更新C相关的知识哦我们下期见
http://www.zqtcl.cn/news/601572/

相关文章:

  • 大连seo整站优化酷播wordpress视频插件
  • 好的网页设计网站学编程要什么学历
  • 做网站公司电话福建城乡建设网站查询
  • 郑州做网站哪个公司好做二手市场类型的网站名字
  • 网站建设与维护里面的个人简历选择网站建设公司好
  • 济南浩辰网站建设公司怎么样wordpress 3.8 问题
  • 柳州正规网站制作公司网站ww正能量
  • 网站seo优化工具网站推广策略方法
  • 企业网站建设知名wordpress 自定义php
  • 用php做的网站有哪些全能网站建设
  • 网站显示正在建设中wordpress 排行榜 页面
  • 手机管理网站网站打开速度优化
  • 做微网站需要什么做的比较好的美食网站有哪些
  • 五金商城网站建设注意wordpress虚拟空
  • 成都工程网站建设网站界面设计的优点
  • 网站建设里的知识找别人做公司网站第一步做什么
  • 婚纱摄影网站模板之家专业seo网站优化公司
  • 商丘市住房和城乡建设局网站广西网站建设timkee
  • php网站开发是做什么的网站策划总结
  • 站长工具seo推广秒收录WordPress注册插件中文
  • 目前个人网站做地最好是哪几家做汽配网站需要多少钱
  • php做网站多少钱网络营销推广方案3篇
  • 浙江坤宇建设有限公司 网站省直部门门户网站建设
  • 直播类网站怎么做上海市建设质量协会网站
  • 筑巢做网站怎么样网站设计接单
  • 会ps的如何做网站wordpress 仿虎嗅
  • 免费响应式网站建设嘉兴建企业网站
  • 织梦网站首页幻灯片不显示建设银行网站特色
  • php企业网站开发东莞网站建设时间
  • 仿win8网站模板网站开发接私活的经理