unordered-map相关内容
在下面给出的示例程序中(来源:http://www.cplusplus.com/reference/unordered_map/unordered_map/rehash/) // unordered_map::rehash #include #include #include int main () { std::
..
在考虑复制之前,请了解我的问题的基础。 为什么C++std::map接受std::pair作为键类型,而std::unordered_map不接受? 第一个案例编译完美: #include #include using namespace std; typedef pair int_pair; int main() {
..
C++ 中的多重映射似乎很奇怪,我想知道为什么 #include #include 使用命名空间标准;typedef unordered_multimap我的地图;int main(int argc, char **argv){我的地图;map.insert(MyMap::value_type('a', 1));map.ins
..
我已经阅读了很多关于 unordered_map (c++11) 时间复杂度在stackoverflow,但我还没有找到我的问题的答案. 假设按整数索引(仅举例): Insert/at 函数持续工作(平均时间),所以这个例子需要 O(1) std::unordered_map;我的地图 = {{ 1, 1},{ 100, 2},{ 100000, 3 }}; 我很好奇的是遍历存储在
..
为什么std::unordered_map, string> 只是开箱即用?必须为 tuple 定义散列函数很繁琐,例如 模板struct do_hash>{ size_t operator()(std::tuple const& tt) const {...} }; 构建以元组为键的无序映射 (Matth
..
std::unordered_map::emplace和std::unordered_map::insert在C++中有什么区别? 解决方案 unordered_map::insert 将键值对复制或移动到容器中.它被重载以接受对常量的引用或右值引用: std::pair;insert(const std::pair& value);模板std::pair插入(P
..
C++ 库中的内置映射和集合(包括 unordered_map 和 multimap)要求 find 函数(用于查找特定元素)使用迭代器来遍历元素.C++ 参考站点声称使用这些数据结构查找元素平均需要恒定时间,就像常规哈希表一样.但是迭代器在找到元素之前是否必须遍历整个列表,平均花费 O(n) 时间? 解决方案 你的说法不正确: map、set、multimap 和 multiset
..
是否保证当一个 hash_map/unordered_map 加载相同的项目时,它们在迭代时将具有相同的顺序?基本上我有一个从文件加载的哈希图,我会定期将有限数量的项目提供给例程,然后释放哈希图.消费完项目后,我将相同的文件重新加载到哈希图中,并希望在我上次停止的点之后获取下一批项目.我停止的点将由钥匙识别. 解决方案 从技术上讲,不保证它们按任何特定顺序排列. 然而,在实践中,鉴于
..
最近发现C++中hash map的实现会叫unordered_map. 当我查看他们为什么不只是使用 hash_map 时,我发现显然 hash_map 的实现存在兼容性问题,即 unordered_map 解析(更多关于它这里). 那个 wiki 页面没有提供更多信息,所以我想知道是否有人知道 unordered_map 解决的 hash_map 的一些问题. 解决方案 由于
..
我想在我的 unordered_map 中使用由 int、char、char 组成的元组.我是这样做的: #include #include #include #include #include 使用命名空间标准;元组 kk;unordered_map地图;主函数()
..
我对“unordered_map"这个名字感到很困惑.顾名思义,键根本没有排序.但我一直认为它们是按哈希值排序的.还是说错了(因为名字暗示它们不是有序的)? 或者换个说法:这是这个 typedef map;>哈希映射; 与 template结构 HashComp {布尔运算符()(v1)()
..
c++ unordered_map 碰撞处理、调整大小和重新散列 这是我之前提出的一个问题,我发现我对 unordered_map 的实现方式有很多困惑.我相信很多其他人也和我一样困惑.根据我没有阅读标准就知道的信息: 每个 unordered_map 实现都存储一个链表到外部桶数组中的节点......不,这根本不是为大多数常见用途实现哈希映射的有效方法.不幸的是,规范中的一个小“疏忽
..
我知道如何使用 std::unordered_map::emplace,但我如何使用 emplace_hint?cplusplus 和 cppreference 提供了一组示例来说明我们如何知道将元素放在哪里. 谁能提供一些关于此的信息或提供一些示例/插图,说明我们何时可能知道放置的元素应该去哪里? 解决方案 unordered_map 可以用提示做什么?好吧,如果迭代器使用与 em
..
这个问题可能有点粗略,因为我家里没有可用的代码,但我知道这件事否则会困扰我整个周末. 当我尝试将一些代码更新到 C++11 时,我开始用 std::unordered_map 替换一些 std::map.该代码仅使用 std::map::find() 来访问地图中的特定元素,因此我认为替换应该很容易.返回的迭代器被存储在一个 auto 类型的变量中(auto res = map.find(
..
C++ STL unordered_map 如何解决冲突? 查看http://www.cplusplus.com/reference/unordered_map/unordered_map/,它说“唯一键容器中的任何两个元素都不能具有相同的键." 这应该意味着容器确实正在解决冲突.但是,该页面并没有告诉我它是如何做的.我知道一些解决冲突的方法,比如使用链表和/或探测.我想知道的是c++
..
对于 std::map 和 std::tr1::unordered_map,我从标准中看到: 对 unordered_map 容器中元素的引用在所有情况,即使在重新哈希后也是如此. 他们是如何做到这一点的(实施方面)?他们是否将所有条目维护为一种链表,然后哈希表只存储指向元素的指针? 解决方案 是的,涉及到链表,虽然不像你建议的那样. 2011 标准说(23.2.5 第
..
使用下面的代码,我在 MSVC 中遇到了一个非常令人困惑的错误,它似乎表明密钥类型(std::tuple)正在转换为 std::string. #include #include #include #include #include typedef std::tuplekey_t;struct key_hash : public std::unary_function
..
我要声明: std::unordered_mapm_mapMyMap; 但是当我构建时,我收到一个错误,告诉我标准 C++ 没有为 CString 提供哈希函数,而 CString 有 (LPCSTR) 运算符. 如何正确实现 CString 的哈希函数? 解决方案 基于 std::string 的 MS STL 实现,我创建了以下可用于 std 的方法::unordered_s
..
我有一个 C 类,它有一个 string* ps 私有数据成员. 现在,我想要一个 unordered_map,我需要一个自定义哈希函数. 根据 c++ 参考,我可以这样做 命名空间标准{模板类哈希{上市:size_t operator()(const C &c) const{返回 std::hash()(*c.ps);}};} 问题是我似乎无法让 operator() 和 C 成
..
我有以下带有 unordered_map 成员的类,以及为 pair 定义的散列函数 类 abc{上市 :unordered_map , 整数 >规则;未签名节点;未签名的数据包;};命名空间标准{模板 类哈希>{上市 :size_t operator()(const pair &x) const{size_t h = std::hash()(x.first) ^ s
..