map
- try_emplace(key,args_to_construct_v)
- 批量insert,on
- insert_and_assign
- erase_if
- extract,直接取出一个节点,内存不变,但是原来的map里就没有这个了,然后这玩意就可以再次插入别的里面
- merge,全部extract,一般来说source会清空,但相同的会保留在原来的里面
- 三种方式来重载<
- 特化less
- 闭包
- 仿函数
- 三路运算符可以用=default
- 可以用std::tie来将struct绑定到一个tuple直接比较来避免手写麻烦的比较
- less原本是在最外层类这里template的,但是这样就限定了less
只能比较T,所以现在有一种透明仿函数,将template放到operator()这里,以实现less<>可以比较任意可以比较的两种类型,感觉这玩意应该也能用concept来限定,我不好说 - 这样也能实现各种泛型
- 也可以通过实现比较器来实现不同类型之间的比较和查找
map
https://lhish.github.io/project/hide/map/