unordered-map相关内容
为什么我不能有 std::function 的 std::set 或 std::unordered_set ? 有什么办法让它工作吗? 解决方案 为什么我不能有 std::function 的 std::set 或 std::unordered_set ? std::set 依赖于比较器,用于确定一个元素是否小于另一个. 它默认使用 std::less,std::le
..
我是 C++ 编程的新手,非常感谢那些不需要太多先验知识的回复. 感谢这里的建议,我创建了一个无序地图: typedef std::tr1::unordered_map地图; 该映射中的数据是指向 Strain 类实例的指针.一旦创建了这些实例,我就会创建指向它们的指针,然后将这些指针添加到我的哈希表 (hmap trainTable) 和另一个向量 (vector liveStrain
..
我有一个 Java 程序,我想将其转换为 C++.因此,Java 代码中使用了一个 Linkedhashmap 数据结构,我想将其转换为 C++.C++ 中是否有 LinkedHashmap 的等效数据类型? 我尝试使用 std::unordered_map,但是,它不保持插入的顺序. 解决方案 C++ 不提供具有模仿 Java 的 LinkedHashMap 行为的集合模
..
我知道 C++ STL 中的 unordered_map 被实现为哈希表,由与哈希值对应的桶组成.插入、删除和元素搜索的时间保证摊销不变.但是我不太明白迭代器是如何处理这个数据结构的.当我增加迭代器时,它如何知道下一个位置在哪里?当我使用迭代器遍历 unordered_map 时,时间复杂度是多少?用于查找迭代器下一个位置的时间是常数吗?我在The C++ Standard Library: A
..
如果我不断向 unordered_map 添加值,那么每次元素数量超过 bucket_count()(假设 max_load_factor = 1)时都会发生重新散列. 我很困惑的是重新散列后的桶大小. #include #include int main() {std::unordered_mapmp;for (size_t i = 0; i 输出 3 7 17 37 79 167
..
我最近发现了 boost::multi_index_container,我很好奇他的性能与我自己的基于多级映射的类似容器的实现相比,并定义为: typedef int 数据;typedef uint64_t 主键;typedef uint64_t SecondaryKey;typedef std::unordered_map二级地图;typedef std::unordered_map主地图;
..
嗨,我想知道我是否可以自己建立另一个链接结构,以实际上在unordered_map的键之间建立自己的顺序?还是有一个标准库?我需要unordered_map的快速查找功能... 例如: #include#include结构链接器{字符串* pt;字符串* child1;字符串* child2;};unordered_map
..
这是“> assigning-of-unordered-map的后续问题对对象.这是关于编译器错误解释的问题(而不是重复问题,因为该问题已得到完全回答).有人问我是否看过错误,并发布错误,以便其他人可以从了解中受益.这是第一个错误: #include使用命名空间std;struct foo {int n;foo(int n):n(n){};//foo():n(
..
我对矢量查找与地图查找感到好奇,并为此编写了一个小测试程序.它似乎矢量总是比我使用它的方式更快.测试有任何偏见吗?运行的结果在底部.它以纳秒为单位,但是gcc在我的平台上似乎不支持它. 使用字符串进行查找当然会改变很多事情. 我正在使用的编译行是:g ++ -O3 --std = c ++ 0x -o lookup lookup.cpp #include#in
..
在这个简单的示例中,出现编译错误: #includeint main(){std :: unordered_mapa,b;a.合并(b);} 错误: $ clang ++ -std = c ++ 17 merge.cppmerge.cpp:5:4:错误:'std :: __ 1 :: unordered_map
..
我尝试通过使用地图调用一些api来替换 if/else 为什么初始化列表会引发错误? ...#include#includeclass MyClass final:公共基础{std :: string InfoInquiry(Class_1& request,Class_2& response);std :: string Activ
..
对于 std :: unordered_map ,您是否可以访问某些存储区 i 中的元素如果其 bucket_size 不为零? 解决方案 答案是使用 std :: unordered_map :: begin(bucket_num)或 std :: unordered_map :: cbegin(bucket_num)获取指向该存储桶第一个元素并迭代到存储桶末尾的迭代器 std :: u
..
换句话说,如果我填写两个 unordered_map 或 unordered_set ,则内容完全相同且哈希函数相同的对象将对其进行迭代,从而给出相同的顺序键/值对? 如果是,那么要满足的条件是什么(例如,相同的哈希函数,相同的键,不一定是相同的值). 解决方案 否.例如,不要求将具有相同散列的对象以任何特定顺序放置.实际上,一般来说,无序映射是不可能做到这一点的,因为它只能访问的信
..
我正在使用unordered_maps的unordered_map,这样我就可以使用“多键"语法引用元素: my_map [k1] [k2] . 是否存在使用相同的“多键"语法在尝试访问元素之前检查它是否存在的简便方法?如果没有,最简单的方法是什么? 解决方案 如果您打算测试密钥的存在,则不会使用 my_map [k1] [k2] 因为 operator [] 将如果该
..
我正在使用gnu ++ 0x中的 std :: unordered_map 来存储大量数据.我想为大量元素预分配空间,因为我可以限制使用的总空间. 我想做的是打电话: std :: unordered_map m;m.resize(pow(2,x)); 其中x是已知的. std :: unordered_map 不支持此功能.如果可能的话,我宁愿使用 std :: unorde
..
我正在尝试使用 sort()函数对 unordered_map 进行排序,但是我一直遇到编译器错误.有人可以帮忙吗? bool comp(pair a,pair b){返回秒
..
#include#include#includestruct tree_node {//tree_node():attrib_val {"null"} {}std :: unordered_map孩子;};int main(int argc,char const * arg
..
当我使用操作符[]访问 std :: unordered_map中的元素时首次自动创建.对其初始化有什么保证(如果有的话)?(保证要初始化值,还是只能构造)? 示例: std :: unordered_map尺寸;char * test =新的char [10];大小[测试] + = 10; 此序列末尾的size [test]是否保证为10? 解
..
我们知道基于哈希表的容器实现,例如 std :: unordered_map 使用大量内存,但是我不知道多少? 除了空间复杂度符号外,不考虑容器元素是否是指向更大对象的指针: 有什么方法可以计算出运行时此类容器使用了多少个字节? 是否有一种方法可以在运行时告诉任何容器使用多少内存? 解决方案 如果您想获得大致尺寸,我认为 bucket_count()和 max_load_
..
我想从满足以下作为lambda表达式给出的预测(直方图bin的计数为零)的 std :: unordered_map (直方图)中删除元素(直方图bins) std :: remove_if(begin(m_map),end(m_map),[](const Bin& bin){return bin.second == 0;}); 但GCC-4.6.1抱怨如下 /usr/include/c
..