如何创建一个属于自己的网站信息产业部互联网网站管理工作细则
如何创建一个属于自己的网站,信息产业部互联网网站管理工作细则,wordpress密码原理,wordpress 在线教育C 中的 std::map 是 STL#xff08;标准模板库#xff09;中关联式容器的核心组件#xff0c;基于红黑树实现#xff0c;以「键 - 值#xff08;key-value#xff09;」对的形式存储数据#xff0c;且会自动按照键的升序排序#xff0c;是处理有序键值对场景的首选工具…C 中的std::map是 STL标准模板库中关联式容器的核心组件基于红黑树实现以「键 - 值key-value」对的形式存储数据且会自动按照键的升序排序是处理有序键值对场景的首选工具。一、核心特性有序性插入元素后map 会自动根据 key 的大小默认升序排序底层红黑树保证了有序性和高效的插入 / 查找 / 删除效率平均时间复杂度 O (log n)。唯一性key 具有唯一性不允许重复插入相同的 key若插入重复 key新值会覆盖旧值。非连续存储不同于数组 /vectormap 元素存储在红黑树节点中物理地址不连续不支持随机访问无法用下标[]直接按索引访问仅能按 key 访问。可自定义排序支持通过自定义比较函数修改 key 的排序规则如降序、自定义类型排序。二、基础用法含代码示例1. 头文件与初始化使用 map 需包含头文件map基础初始化方式cpp运行#include iostream #include map #include string using namespace std; int main() { // 方式1空mapkey为intvalue为string mapint, string m1; // 方式2初始化时插入元素 mapint, string m2 {{1, Apple}, {2, Banana}, {3, Cherry}}; // 方式3自定义排序降序 mapint, string, greaterint m3 {{1, A}, {2, B}}; // 按key降序2→1 return 0; }2. 元素插入cpp运行mapint, string m; // 方式1[] 运算符若key不存在则插入存在则修改value m[1] Apple; m[2] Banana; // 方式2insert() 推荐避免不必要的默认构造 m.insert(pairint, string(3, Cherry)); m.insert(make_pair(4, Date)); m.insert({5, Elderberry}); // 方式3emplace() 直接构造效率更高 m.emplace(6, Fig);3. 元素查找cpp运行// 方式1find() 返回迭代器未找到则返回 end() auto it m.find(3); if (it ! m.end()) { cout 找到 it-first → it-second endl; } else { cout 未找到key3 endl; } // 方式2count() 判断key是否存在返回0或1 if (m.count(4)) { cout key4 存在 endl; }4. 元素删除cpp运行// 方式1按key删除 m.erase(2); // 删除key2的元素 // 方式2按迭代器删除 auto it m.find(5); if (it ! m.end()) { m.erase(it); } // 方式3删除所有元素 m.clear();5. 遍历cpp运行mapint, string m {{1, A}, {2, B}, {3, C}}; // 方式1普通迭代器 for (auto it m.begin(); it ! m.end(); it) { cout it-first → it-second endl; } // 方式2范围forC11 for (auto pair : m) { cout pair.first → pair.second endl; }三、常见使用场景数据字典 / 索引如通过 ID 映射用户信息、通过单词映射释义。有序统计如统计字符出现次数并按字符顺序输出。配置项存储如读取配置文件中的键值对按 key 有序管理。四、注意事项map的[]运算符若访问不存在的 key会自动插入该 keyvalue 为默认构造值如 string 为空串、int 为 0需避免误操作。若无需有序性优先使用unordered_map哈希表实现平均查找效率 O (1)性能更优。自定义类型作为 key 时必须重载比较运算符如或自定义比较函数否则无法排序。五、map vs unordered_map 对比特性std::mapstd::unordered_map底层实现红黑树哈希表有序性按 key 升序可自定义无序查找效率O(log n)平均 O (1)最坏 O (n)插入 / 删除O(log n)平均 O (1)最坏 O (n)内存占用较低红黑树节点较高哈希表扩容预留适用场景需有序、频繁遍历无需有序、高频查找