STL

hash map

class hash_map { hash_map() {set_load(); v.reserve(max_load*b.size());} // 表“太满”(如 75% 满)时性能会恶化 void set_load(float m=0.7, float g=1.6) {max_load=m; grow=g;} // 查找 mapped_type& operator[] (const key_type& k) { // 先计算散列值,查找表索引 size_type i = hash(k) % b.size(); // 找到之后遍历散列链匹配

STL

介绍 算法 头文件 algorithm 排序 搜索 重要的 STL 算法 未加工算法 加工算法 有用的 Array 算法 划分操作 头文件 valarray 容器 顺序容器 array vector deque forward_list list 容器适配器 stack queue priority_queue 关联容器 set multiset map multimap 无序

STL 的 push 和 emplace

前言 std::queue::emplace std::deque::emplace_back std::allocator_traits::construct std::allocator std::deque::allocator std::queue::push std::deque::push_back std::vector 的 emplace_back 和 push_back 产生时间 类型的构造函数不止 1 个 效率 std::map 的 emplace 和 insert 其他参考 前言 下面的说明以 STL 的 queue 为实例,其他 STL 还有 push_back/emplace_back 等,各自的影响不尽