问题标签 [unordered-map]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 一对配对作为 unordered_map 问题的关键
我的代码:
错误
我需要修复什么?
谢谢
visual-studio - 为什么 Visual Studio 找不到 'tr1/unordered_map?
我想在项目中使用 google-ctemplate。但如果我包含基本文件,我会收到以下错误(使用 Visual Studio C++ 2005):
我可以在 boost-directory 中找到 unordered_map.hpp,并且 boost-directory 是在 Visual Studio 的包含路径中设置的。我怎么解决这个问题?
c++ - C++ STL unordered_map 迭代器问题
看上面的代码。我的问题是 FileMap::const_iterator 是如何工作的。它是否会复制 key(std::wstring) 和 value(FileData)?还是它只是保存对键和值的指针/引用?
c++ - 在结构内的 TR1 unordered_map 中定义哈希函数
据此,可以在 TR1 unordered_map 中定义一个相等函数,如下所示:
是否可以以相同的方式定义散列函数?
c++ - 我的静态地图总是空的
我在头文件中声明了一个静态无序映射,如下所示:
在同一个头文件中,我有一个用一些值填充地图的函数:
稍后在我的程序中,在一个单独的类/函数中,我尝试读取其中一个值:
但地图总是空的。控制台的输出始终是初始化例程中的 4,然后是第二个 cout 中的 0。我认为静态地图在整个程序中是持久的,所以我对我的静态地图如何变成空有点困惑。任何人都可以解释一下吗?
谢谢
c++ - C ++如何将方法作为模板参数传递
假设我有一堂课X
:
我想创建一个std::tr1::unordered_map<X, int, HashFn>
我想
X::hash()
作为HashFn
. 我知道我可以声明我自己的仿函数对象。我觉得应该有一种方法可以通过直接将指针传递给X::hash()
.
有没有?
c++ - 访问 tr1/unordered_map 的内在类型哈希函数
我在搞乱unordered_map
类模板,我想为我的类编写一个自定义哈希。它的文档提到为内部类型提供了默认散列函数。因此,如果您声明:
您会自动获得为您定义的散列器。
如果你想要一个自定义哈希函数,这里有一个很好的例子来说明如何提供一个仿函数。
但是,如果我有一个复杂的类,它有一个std::string
我想用作插入/删除键的成员unordered_map
怎么办?我不想重写我自己的哈希器。我想利用已经为该std::string
类型编写的内容。
c++ - 为什么 std::tr1::unordered_map 比本地哈希映射慢?
我编写了一个基本程序,该程序接受字符串并通过将它们插入字符串->整数哈希映射来计算唯一字符串的发生率。
我使用 std::tr1::unordered_map 进行存储,为自定义哈希函数和自定义相等函数模板化。关键类型实际上是char*
而不是 too-slow std::string
。
然后,我更改了相同的代码以使用一个非常非常简单的哈希表(实际上是一个由哈希索引的 {key, value} 结构的数组),其大小为 2 的幂,并且对冲突进行线性探测。该程序的速度提高了 33%。
考虑到当我使用 tr1::unordered_map 时,我预先设置了哈希表的大小,因此它永远不必增长,并且我使用完全相同的哈希和比较例程,所以 tr1::unordered_map 这样做会使其速度减慢 50%与可以想象的最基本的哈希图相比?
我在这里所说的“简单”哈希映射类型的代码:
c++ - 对象作为无序映射的键
我在将类的对象放在无序映射中作为键时遇到问题,这是一个简单的示例:
我的问题是当我尝试插入两个不同的对象并尝试显示它时显示分段错误..再次如果我尝试使用 find() 那么它也显示分段错误..我很难理解为什么 unordered_map 显示这种行为。
任何帮助将不胜感激!!这将对我的项目有很大帮助...
c++ - std::tr1::unordered_map 中的 C++ 等式
是否有理由 std::tr1::unordered_map 遗漏了 std::map 存在的相等(==)运算符?
什么是实现这一点的好方法?我正在考虑创建两组 unordered_map::value_type,从两个 hash_map 初始化它们,然后检查两组的相等性。