QT中哈希表QHash的用法

QT中哈希表QHash的用法 定义一个哈希表QHashQString, int countMap;初初始化数组validResults [PASS, ok, PASS]QHashQString, intQt提供的哈希表容器键为QString结果字符串值为int出现次数。类似于C STL的 std::unordered_mapstd::string, int或 Python的dict。 初始为空哈希表 {}。遍历并统计cppfor (const QString res : validResults) { countMap[res]; }核心机制QHash::operator[]countMap[res]是QHash的索引操作符它的行为非常特殊情况行为键已存在返回对应值的引用可以直接修改键不存在自动插入该键并用默认值int为0初始化然后返回该值的引用执行过程详解以validResults [PASS, ok, PASS]为例第1次循环res PASScppcountMap[PASS]; // 键不存在 → 自动插入 {PASS: 0} → 自增 → {PASS: 1}第2次循环res okcppcountMap[ok]; // 键不存在 → 自动插入 {ok: 0} → 自增 → {ok: 1} // 现在 countMap {PASS: 1, ok: 1}第3次循环res PASScppcountMap[PASS]; // 键已存在 → 获取值 1 → 自增 → 变为 2 // 现在 countMap {PASS: 2, ok: 1}可视化数据流textvalidResults [PASS, ok, PASS] ↓ countMap[PASS] → {PASS: 1} countMap[ok] → {PASS: 1, ok: 1} countMap[PASS] → {PASS: 2, ok: 1} ↓ 最终结果: {PASS: 2, ok: 1}