map/随机id的生成机制

std::map的背后数据结构

map背后的数据结构是红黑树,是一种特殊的avl平衡树,但并不需要子树的两边的绝对高度差为1,可以容忍为左边和右边的高度差不到2倍。
avl平衡树的主要特性为搜索、查找、删除的时间效率在最差的情况下均为log2(n)的时间效率。例如:1000个结点,最差为10次查找。
而红黑树优于avl树的特点在于并不需要为了平衡,过多进行旋转和交换的动作,减少这些动作的开销和损失。
红黑树的定义为:

节点只有两种颜色(黑色或者红色)
根和节点都是黑色
红色不能连续出现,所以红色节点的子节点一定是黑色。
从任意一个节点到叶子的每条路径上的黑色节点数目要保持一样。

[1].这个对插入的情形写的较为清楚。
http://blog.csdn.net/goodluckwhh/article/details/11804733
[2].http://daoluan.net/blog/rbtree-is-not-difficult/
这个对与stl有解释。

随机id全局ID的唯一性

这个方面也有许多的一些问题,没有最佳的解决方案。

  1. 最常用的是GUID,GUID的算法一般混合了本地网卡的MAC地址还有时间的随机性。
  2. 使用中心的ID生成系统,管理ID。简单可以使用数据库。数据库的方式有分为单表。(存在crash问题)。多个库。使用不同的step来区分。

Linux下进程通信的问题

  1. linux下的lock机制,效率,与epoll。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 4,351评论 1 5
  • TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做...
    Android看海阅读 1,205评论 0 4
  • 红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。 BST 二叉查找树(Binary...
    kanehe阅读 1,396评论 0 8
  • 树(tree)的基本知识 一.定义 树是一种抽象数据类型,或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构...
    337b94dc718f阅读 7,328评论 3 42
  • 热天里, 我端一杯凉茶给你。 冬天里, 我端一杯热茶给你。 你喝茶, 感觉那茶的味道。 我看你, 感觉那温馨的滋味。
    小剧在成长阅读 162评论 6 4