除了通过比较值进行迭代之外,没有一种有效的方法可以使用std :: map.
但是,大多数情况下,值的键可以从值本身计算出来.例如,使用Person对象的Name属性作为键.管理者是否可以存储键/值对的列表而不是值本身.这将解决您的问题,而无需重写新算法.
或者,您可以在经理类上保留反向地图.关键的本质价值.这样你就可以用它来计算以后删除的密钥.
查看SGI 的 STL 文档,
Map 有一个重要的特性,即向 Map 中插入新元素不会使指向现有元素的迭代器失效。从映射中擦除元素也不会使任何迭代器失效,当然,实际上指向被擦除元素的迭代器除外。
因此,您可以将迭代器存储到对象内的映射中,并在需要删除其条目时将其用作常量时间查找键。
| 归档时间: |
|
| 查看次数: |
6209 次 |
| 最近记录: |