博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
侯捷STL学习(九)--关联式容器(Rb_tree,set,map)
阅读量:6844 次
发布时间:2019-06-26

本文共 1446 字,大约阅读时间需要 4 分钟。


layout: post

title: 侯捷STL学习(九)
date: 2017-07-21
tag: 侯捷STL
---

第十九节 容器rb_tree

  • Red-Black tree是自平衡二叉搜索树。
    oK9EAG2.png
  • rb_tree的封装
  • 清楚传入模板的参数列表;然后构建了一个虚空结点header
  • KeyOfValue表示怎么从value中取出key
  • identity函数(Gnu C独有)就是表示同一个数的意思
    jhVvFp7.png
  • handle-body,采用OOP的思想,构建G4.9
  • 一个红黑树的大小为4个字节

    Py5lveJ.png

  • test Rb_tree
#include 
#include
#include
namespace jj31{void test_Rb_tree(){ //G2.9 vs. G2.9 : //rb_tree => _Rb_tree, //identity<> => _Identity<> //insert_unique() => _M_insert_unique() //insert_equal() => _M_insert_equal() cout << "\ntest_Rb_tree().......... \n"; _Rb_tree
, less
> itree; cout << itree.empty() << endl; //1 cout << itree.size() << endl; //0 itree._M_insert_unique(3); itree._M_insert_unique(8); itree._M_insert_unique(5); itree._M_insert_unique(9); itree._M_insert_unique(13); itree._M_insert_unique(5); //no effect, since using insert_unique(). cout << itree.empty() << endl; //0 cout << itree.size() << endl; //5 cout << itree.count(5) << endl; //1 itree._M_insert_equal(5); itree._M_insert_equal(5); cout << itree.size() << endl; //7, since using insert_equal(). cout << itree.count(5) << endl; //3 } }

容器set,multiset

  • set、multiset元素的value和key合一,value就是key.
    LuXv6xa.png
  • 容器set实现
  • const_iterator实现set不能改变容器元素的值
  • 使用identity表示set已经知道key和value是相同的
    bRBMBQ4.png

容器map,multimap

  • map/multimap的iterator不能改变key,可以改变value
    Q1MRoLT.png
  • map的结构
  • pair将key和data合成value;将key设置为const,这样通过迭代器就不会改变key的值。
    bgudqZd.png
  • select1st实现
    WAQHoFF.png
  • map容器独特的operator[]操作,可以进行插入操作
  • 直接调用insert快一些
    8rJCyAs.png

转载地址:http://jrbul.baihongyu.com/

你可能感兴趣的文章
《嵌入式 Linux C 语言应用程序设计(修订版)》——2.2 嵌入式Linux编辑器vi的使用...
查看>>
黑客发现 Adobe Flash 播放器第二个零日漏洞
查看>>
Docker —— 用于统一开发和部署的轻量级 Linux 容器 【已翻译100%】
查看>>
《初级会计电算化应用教程(金蝶KIS专业版)》——1.3 电算化会计信息系统
查看>>
Android 开发者应该使用 FlatBuffers 替代 JSON ?
查看>>
《拥抱变化——社交网络时代的企业转型之道》一找准组织目标和企业文化
查看>>
《Arduino奇妙之旅:智能车趣味制作天龙八步》一3.2 构建小发明
查看>>
《Cisco安全防火墙服务模块(FWSM)解决方案》——第2章防火墙服务模块概述
查看>>
Go语言项目(kingshard)性能优化实例剖析
查看>>
安全预警:ImageMagick 图象处理软件存在远程代码执行(CVE-2016-3714)
查看>>
《ANSYS Workbench 14有限元分析自学手册》——2.5 体操作
查看>>
《交互式程序设计 第2版》一第1章 交互设计导论
查看>>
ARM拟将ARM核心置入未来的Fusion APU中
查看>>
3分钟参与阿里云《金融行业云上信任报告》调查问卷,98%的几率拿到代金券
查看>>
《C语言编程魔法书:基于C11标准》——2.9 本章小结
查看>>
《移动数据挖掘》—— 1.4 本书简介
查看>>
菲尔兹奖得主维拉尼:七个点子帮你找到科研灵感
查看>>
《C语言程序设计与实践(第2版)》——导读
查看>>
《计算机科学概论(第12版)》—第1章1.4节用位模式表示信息
查看>>
C2B前还有S2b,阿里携手产学研探索新零售时代的供应链未来
查看>>