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

课程网站建设特色石家庄旅游景点

课程网站建设特色,石家庄旅游景点,wordpress 前台注册,南京网站排名提升C标准库-体系结构与内核分析 根据源代码来分析 介绍 自学C侯捷老师的STL源码剖析的个人笔记#xff0c;方便以后进行学习#xff0c;查询。 为什么要学STL#xff1f;按侯捷老师的话来说就是#xff1a;使用一个东西#xff0c;却不明白它的道理#xff0c;不高明标准库-体系结构与内核分析 根据源代码来分析 介绍 自学C侯捷老师的STL源码剖析的个人笔记方便以后进行学习查询。 为什么要学STL按侯捷老师的话来说就是使用一个东西却不明白它的道理不高明 Level 0 使用C标准库 标准库和STL是同样的东西吗 不是在标准库当中百分之80左右是STLSTL分为六大部件。 一些新旧标准 C标准库没有.h的后缀了例如#include vector新式的头文件不带.h例如#include cstdio但是原来的带有.h的依然可以使用命名空间把什么函数模板之类的可以封装起来新式的头文件以及组件都被封装到std当中 STL六大部件 容器分配器算法迭代器适配器分配器 容器容器要放东西东西要占用内存所以容器他非常好的是可以帮我们把内存的问题给解决掉你看不到内存这个东西只需要不断从容器当中放入/取出东西就好了所以容器的背后需要另外一个部件去支持它这个部件就是分配器数据在容器里面。分配器是用来支持容器的。算法有一些函数/操作是由容器做的但是更多的是包含在算法当中操作数据的操作在算法里面。迭代器如何用算法去操作数据呢使用迭代器也就是泛化指针。仿函数作用像是一种函数。适配器把容器/算法/迭代器做一些转换。 六大部件之间的关系 vectorint, allocatorint第二个参数是allocator。 以上为六大部件之间具体的联系与配合。在上方的程序当中lessint()这是标准库当中的一个仿函数然后他的作用是进行比较比如说a b然后现在利用了count_if这个算法其作用是找到我们指定目标的数值现在假如需要找到小于40的值但是仿函数少了第二参数所以就可以利用之前适配器的功能适配器就是把容器/算法/迭代器做出一些转换使用bind2nd这个转换即可有了第二参数40之后又进行函数的转换加了一个not1以前要找小于等于40现在要大于40。 #includevector #includealgorithm #includefunctional #includeiostreamusing namespace std;int main(void) {int ia[ 6 ] { 27, 210, 12, 47, 109, 83};vectorint, allocatorint vi(ia, ia6);cout count_if(vi.begin(), vi.end(), not1(bind2nd(lessint(), 40)));return 0; }结果 4...Program finished with exit code 0 Press ENTER to exit console.疑惑 仿函数less()这是标准库当中的一个仿函数然后他的作用是进行比较比如说a b适配器 复杂度 前闭后开的区间 把元素放到容器当中容器当然是有头有尾的所有容器都提供begin()end()迭代器头没有疑虑尾巴呢所谓容器的前闭后开区间标准库规定begin()要表示开始的启动end()表示最后一个元素的下一个元素。 ###容器的遍历C11之前的写法 ContainerT c; ... ContainerT::iterator ite c.begin(); for (; ite ! c.end(); ite)...最新的写法最推荐C11基于范围的for循环 for (auto decl : coll) {statement; } decl是一个声明coll是一个容器相比以前的写法方便太多了。 不是非必要的时候不用auto因为知道一个元素的类型还是很重要的。 容器的结构 容器的分类 1.序列式容器 序列式容器特点额外学习材料array一段连续空间不论是否使用都会全部占用arrayvector尾部可进可出当空间不够时会自动扩充vectordeque双向都可扩充两端都可进可出dequelist一个双向环状链表有向前后和向后两个指针listforward_list一个单向链表仅有向后一个指针forward_list 关联型容器 联式容器类似于key-value非常适合于查找操作 关联式容器名特点实现注释额外学习材料set/multisetkey和value是同一个BST存储是有序的红黑树加上multi意味着可以重复键值对setmultisetmap/multimap每一个key对应一个valueBST存储是有序的红黑树加上multi意味着可以重复键值对mapmultimapunordered_set/unordered_multiset相对于set/multiset存储是无序的哈希表加上multi意味着可以重复键值对unordered_setunordered_multisetunordered_map/unordered_multimap相对于map/multimap存储是无序的哈希表加上multi意味着可以重复键值对unordered_mapunordered_multimap在标准库当中并没有规定set和map用什么来实现但是用红黑树因为左右两边会自己平衡非常好所以各家IDE都用红黑树来做set和map。 map每一个节点都有key和valueset却没有明确划分。 选择普通的set和map里面的元素的key是不能重复的但是使用multiset以及multimap的时候里面的key是可以重复的。 哈希表的某一条链表不能太长因为单链表是要不断进行遍历的这样时间复杂度就会很高。
http://www.sczhlp.com/news/152761/

相关文章:

  • 国内大型免费网站建设网站制作的分割线怎么做
  • 制作公司网站 价格可以直接进入网站的正能量照片
  • 做网站开发的有外快嘛南宁网站搭建
  • 网站多个域名备案建设局网站更改法人所需材料
  • 东莞网站建设模板报价推广整合营销
  • 工作了应该浏览器哪些网站哪些做直播卖食品的网站有哪些
  • 万网网站多少上海自适应网站设计
  • 网站的做代理商深圳企业网站制作公司单位
  • 网站设计标题如何修改网站后台登陆入口路劲
  • 彩票网站做一级代理犯法吗小型网站建设实训教程
  • 长沙专业网站建设公司常用博客建站程序
  • 正规html5网站营销型网站开发定制
  • 建设银行纪检监察网站网站开发所需人员
  • 怎么把网站上的通栏wordpress 文档管理系统
  • 可以自己做斗图的网站天天作文网
  • 全国住房建设部网站html自动导入wordpress
  • 商品标题关键词优化seo百度关键词优化软件
  • 厦门市网站建设软件开发公司山东电力建设网站
  • html5网站开发费用怎么用路由器做网站
  • 建筑网站招聘阿里云网页版入口
  • 做购物网站收费wordpress 数据库迁移
  • 广州网站优化费用网站的建设需要虚拟机吗
  • 做一个网站放网上要多少钱app网站建设济宁
  • 服装网站欣赏商务网站建设的项目体会
  • 驾校网站模版上海市建设工程检测行业协会网站
  • 网站建设服务哪家有德阳小程序开发
  • 装修类网站模板下载企业oa网站建设方案
  • 企业宣传网站建设需求说明书网站和discuz同步登录
  • 软件开发流程ppt中山网站seo优化
  • 本地网站建设开发信息大全辽宁建设工程信息网盲盒