快速c++简化map字典一样的集合
Fast C++ simplified mapdictionary like collection?
我需要一个简单的API
int id = Put(value);
void Remove(id);
// and some kind of for_each that could iterate over all data ( there will be around ~1000 objects or less), and this is operation that will be calld super often compared to Put and Remove
在很多c++会议上都有很多关于std::map是如何慢的批评。实际上我并不需要它的所有成员。因此,在这种印象下,我寻找一个可以满足我最小需求的替代方案。
这主要取决于你需要/关心什么特性。map提供:
- <
- 独特的键/gh>
- 键快速查找
- 按键顺序迭代
- 任意项的插入/删除
- 顺序始终保持
如果你不需要所有这些,你可能会更好地使用其他容器。如果您不关心顺序或唯一性,那么您可以创建int/pointer(或guid/pointer)对的vector,并根据需要添加新的对。这支持快速迭代,但使得查找单个项目相对较慢,并且无法保持唯一性。如果你想在特定时间排序,你可以用排序来实现。同样地,如果您希望在特定时间内保持唯一性,您可以使用sort + unique来实现。当它被排序时,按键查找项通常相当快(通常比map
快)。
如果您关心惟一性,但在迭代时不需要按顺序排列项,则可能需要考虑使用unordered_map。与地图一样,这仍然可以让你快速找到单个道具,但迭代不会以有意义的顺序发生。与排序向量一样,按键查找单个项通常比使用map
更快。
相关文章:
- 处理多个异常集合的C++方法
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 如何将ampl中的集合表示为c++中的向量
- 检查值是否在集合p1和p2中,但不在p3中
- 带过滤器的现代迭代c++集合
- 如何将结构插入到集合中并打印集合的成员
- 集合上的输出迭代器:assign和increment迭代器
- 如何将函数集合传递给客户端类,以便将它们当作客户端类本身的成员使用
- 实现一个在集合上迭代的模板函数
- 尝试使用集合函数时出现分段错误
- 互斥指针的集合
- c++找不到具有相同哈希的无序集合元素
- python集合的C++等价物是什么.计数器
- 如何在C++中递归地按相反顺序打印集合
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- Python 集合.计数器,如何避免重复查找
- 我们可以将集合的值存储在变量中吗?就像我们可以将数组的值存储在变量中一样
- 如何将值插入到 c++ boost::multiindex 集合的特定索引中,就像在 std::list 中一样
- c#是像Objective-C和c++一样的C语言的超级集合吗?
- 快速c++简化map字典一样的集合