c++ STL源码解读

发布时间 2023-11-03 11:31:17作者: 哦哟这个怎么搞

红黑树

map,key不能添加相同的key,如果添加不会报错,但是添加不进去

 

#include <iostream>
#include <map>
#include <set>
using namespace std;
int main(int argc, char const *argv[])
{
    map<int,int> a ;
    a.insert(make_pair(1,1));
    a.insert(make_pair(1,2));
    for (const auto& [key, value] : a) {
        cout << "Key: " << key << ", Value: " << value << endl;
    }
}

输出结果为 Key: 1, Value: 1

map中at取没有的key会编译通过运行时抛出异常,map[]没有值不会抛出异常会返回一个值0

迭代器 ++

因为上图中的平衡二叉树的实现是中序遍历(左根右)

 

 1.如果是8下一个节点是10

2.如果是5下一个节点就是6

3.如果是7下一个节点就是8

 

散列表