选对容器,看清一次调用是否写入
先用需求约束推导关联容器,再亲手操作一个 std::map<std::string, int>。每次调用都会展示返回语义、大小变化,以及它究竟是只读还是会写。
用四项需求收敛类型
修改任意选项,右侧建议会立即变化。
| 组织方式 | 典型查询 | 遍历顺序 | 边界查询 |
|---|---|---|---|
| 有序(通常为平衡树) | O(log n) | 按比较器排序 | 支持 lower_bound / upper_bound |
| 无序(哈希表) | 平均 O(1),最坏 O(n) | 不保证 | 不支持有序边界查询 |
调用控制台
初始状态固定为 {"pen", 2}。
提示:输入新键 ink,依次比较 find、at 与 operator[]。
当前 map 状态
返回与副作用
选择一个操作开始实验。
最近操作
- 实验室已就绪:map = {"pen": 2}
语义提示:insert_or_assign 在键存在时仍会执行赋值;即使新旧整数恰好相等,也属于写操作。try_emplace 在键冲突时不会构造 mapped value。