查找大型boost::unordered_map的大小
Finding the size of a large boost::unordered_map
我想找到一个boost::unordered_map的大小,它包含一个指针,指向一个由std::string映射的类。我在做sizeof(unordered_map var)对吗?它会给我它所占的空间吗?包括占用房子的费用吗?我想测量它,将它与保存相同数据的std::map进行比较,这也是我通过sizeof(std::map var)来测量的。我想知道这两者,以确定每个占用多少存储空间,以及哪个是更好的选择,比较速度和空间。
请让我知道我计算尺寸的方法是否正确,并将给我实际/正确的尺寸,并将帮助我做出正确的决定。
编辑1:如果我得到尺码的方法是错误的,请告诉我得到正确尺码的方法(包括客房管理)
TIA
- r
sizeof()
操作符只返回对象的大小,但不返回它在堆上占用的空间(动态分配的内存)。因为映射和字符串很可能会在堆上分配内存,所以这对您没有帮助。
您将无法可靠地计算地图所使用的空间量。有些类型和空间是你无法访问的。
你应该做的是在你认为有必要的时候问一个与你想要解决的问题完全不同的问题。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 使用一个考虑到std::map中键值的滚动或换行的键
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 允许从 std::map 的密钥窃取资源?
- 有没有办法对std::unordered_set、std::unrdered_map、std::set、std::map
- 将重物插入std::map
- 使用通用值初始化 std::map,不重复
- 仅包含可移动 std::map 的类的移动构造函数不起作用
- C++:当所有条目都保证是唯一时,替代 std::map
- 使用模板化的键类型定义 std::map,该键类型基于作为参数接收的函数
- 如果 KEY 是 std::list 或 std::vector 而不是值,那么 std::map 的默认行为是什么?
- 使用字符数组作为 Map 中的键
- C++如何创建 std::map
- C++ equivalent to Java Map getOrDefault?
- 从其他容器中移动构造"std::map"
- 如何使用 uint64_t 键类型从 std::map<int, std::string> 返回值?
- 将 std::map::emplace 与返回 shared_ptr 的函数一起使用是否正确?
- C++中 std::map 的运行时复杂度是多少?
- unordered map -在c++ std::unordered_map中预分配桶