multiset底层原理,红黑树原理
multiset充电站推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习...
·
multiset 底层实现原理
mulitiset 默认采用 less ,即由小到大的顺序排序

平衡二插搜索树
//AVL树
typedef struct TreeNode {
struct TreeNode *parent;
struct TreeNode *left;
struct TreeNode *right;
int key; //维持有序
int data; //节点尔达斯信息
//bool color 红黑树当中还具有color信息
} TreeNode;
void inorder (TreeNode *node) {
if (node != nullptr) {
inorder(node->left);
printf("k:%d v:%d", node->key, node->data);
inorder(node->right);
}
}
STL中红黑树的实现
记录的信息:a. 根节点位置;b. 最左侧节点位置;c. 最右侧节点位置。
迭代器采用中序遍历的方式进行遍历。

类比 set、multiset、map、multimap
set和multiset会根据特定的排序准则自动将元素排序,set中元素不允许重复,multiset可以重复.map和multimap将key和value组成的pair作为元素,根据key的排序准则自动将元素排序(因为红黑树也是二叉搜索树,所以map默认是按key排序的),map中元素的key不允许重复,multimap可以重复 。
#include <set>
#include <map>
#include <iostream>
using namespace std;
int main() {
set<int> s;
multiset<int> ms;
map<int,int> m;
multimap<int,int> mm;
return 0;
}
充电站
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习
更多推荐



所有评论(0)