首页 > TAG信息列表 > unordered-map

C中的unordered_map错误?

我当时在家用计算机上使用Visual C为类编写程序,但是,我尝试在学校linux计算机上运行该程序,但出现这些错误. std::tr1::unordered_map <string, Word*> map; 这两个错误均出现在上面的代码行中 ISO C禁止声明无类型的“ unordered_map” 预期在“<”令牌之前的“;” 最初我使用

c-在XCode中放入不同的编译单元时,将删除静态unordered_map

我的类C中有一个静态的unordered_map.如果将我的类定义和声明放在包含函数main的文件中的不同文件中,则会遇到行为上的差异. 问题是,我观察到,如果类C与函数main位于同一编译单元中,那么一切都很好,我只看到一次文本“ new string created:c”.但是,如果我将代码分成三个文件(请参见

c-对相同对象同时使用映射和列表

我正在尝试同时使用列表和unordered_map来存储同一组对象.我是C的新手,所以仍然对迭代器感到满意. 说我有以下测试代码: class Test { public: int x; int y; int z; Test (int, int, int); } Test t1 = Test(1,2,3); Test t2 = Test(2,4,6); Test t3 = Test(3,6,

c-boost :: unordered_map缺少std :: unordered_map之类的reserve()

对于下一个任务,我需要使用非常大的哈希值;由于我使用的是旧的编译器,因此无法使用C 0x std :: unordered_map.理想情况下,我需要打电话给储备金,以便为大量物品提前腾出空间.我在boost :: unordered_map中找不到此方法:是否有任何地方或功能可以达到相同的目的? 2个关联容器相同;我可

C unordered_map查找,无需构造字符串

我有C代码,用于调查BIG字符串并匹配许多子字符串.我尽量避免通过编码像这样的子字符串来构造std :: strings: char* buffer, size_t bufferSize 但是,在某个时候,我想在其中之一中查找子字符串: std::unordered_map<std::string, Info> stringToInfo = {... 因此,为此,我去: stri

c-std :: unordered_map-如何随时“跟踪”最大/最小键

我有std :: unordered_map< int,int>. 我不想使用其他结构(例如树)或其他导致延迟要求的结构.但是在任何时候我都需要知道当前的最大键和最小键.我怎样才能做到这一点?分布不均匀,而是经常删除和插入max和min.因此,我需要比“仅在删除当前最大/最小时扫描整个地图以获取新的最大/最

c-在VS2012中使用键std :: find和具有自定义哈希崩溃的指针对查找unordered_map ::

我需要一个键为std :: pair< T *,T *>的std :: unordered_map.所以我“偷”了以下代码: template <class T> inline void hash_combine(std::size_t & seed, const T & v) { std::hash<T> hasher; seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed &g

c – 为什么std :: unordered_map变慢,我可以更有效地使用它来缓解这种情况吗?

我最近发现了一件奇怪的事情.似乎用no caching at all计算Collat​​z序列长度比using std::unordered_map to cache all elements快2倍. 注意我确实从问题Is gcc std::unordered_map implementation slow? If so – why?中得到​​了提示,我尝试使用这些知识使std :: unordered_ma

c – std :: unordered_map :: find使用与Key类型不同的类型?

我有一个使用字符串类型作为键的unordered_map: std::unordered_map<string, value> map; 为字符串提供了std :: hash特化,以及a 合适的操作符==. 现在我还有一个“字符串视图”类,它是一个指向现有字符串的弱指针,避免了堆分配: class string_view { string *data; size_

c – 在std :: map和std :: unordered_map 之间选择

参见英文答案 > Is there any advantage of using map over unordered_map in case of trivial keys?                                    12个 既然std在unordered_map中有一个真正的哈希映射,为什么(或者什么时候)我还想在实际存在的系统上

c – 为什么我不能用一对作为键编译unordered_map?

我正在尝试创建一个unordered_map来映射带有整数的对: #include <unordered_map> using namespace std; using Vote = pair<string, string>; using Unordered_map = unordered_map<Vote, int>; 我有一个类,我已将Unordered_map声明为私有成员. 但是,当我尝试编译它时,我收到以下

c – 如何实现std :: unordered_map

c++ unordered_map collision handling , resize and rehash 这是我之前提出的一个问题,我看到我对unordered_map的实现方式感到很困惑.我相信很多其他人都会和我分享这种困惑.基于我所知道的信息而不阅读标准: Every unordered_map implementation stores a linked list to exter

c – 如何避免在插入期间延迟调整unordered_map的大小

我将unordered_map与MSVC 2010一起使用.如果我在其中插入许多元素,它会开始调整大小.在此过程中,它会复制所有对并重新散列它们.当对象太多时,需要花费太多时间.有没有提示如何避免这种影响?像保留这样的东西,但它没有在VS 2010中实现解决方法:使用rehash代替?它看起来像保留

c – 使用`std :: pair`值进入`std :: unordered_map`

参见英文答案 > std::map emplace without copying value                                    2个 我正试图将值放入std :: unordered地图,如下所示: std::unordered_map<std::string, std::pair<std::string, std::string>> testmap; testma

带有容器迭代器的c中的循环类型依赖(GCC失败,而MSVC ok)

我编写的原始代码与microsoft的编译器开箱即用,但不能用gcc(4.7.4)编译: 这是简化的代码: // test.cpp #include <unordered_map> using namespace std; struct order_rec; typedef unordered_map<int, order_rec> placed_orders_t; typedef placed_orders_t::iterator placed_orde

c – 无序映射的用户定义散列函数

我为unrorderd_map定义了自己的哈希函数.但是我无法使用find函数在容器中搜索.我尝试使用散列函数中的print语句进行调试,并生成插入键/值时生成的相同散列值.如果有人可以指出错误,那就太好了.我在Windows上使用Eclipse IDE,我正在使用-std = c 11进行编译 typedef struct tree n

c – 使用unordered_multimap播放

所以,伙计们,我正在玩std :: unordered multimap只是为了好玩.我想存储(在这个例子中)unsigned short,带有自定义哈希并且相等. 有趣的是什么?如果它们是偶数或奇数,则两个项目相等. 所以,据我所知,我不能使用std :: unordered_map,即使实际值不同:自定义谓词另有说法. (如果我错了,

c – unordered_map的OpenMP / __ gnu_parallel

在我的代码中的某些时候,我必须对unordered_map中的所有元素进行操作.为了加速这个过程,我想使用openMP,但天真的方法不起作用: std::unordered_map<size_t, double> hastTable; #pragma omp for for(auto it = hastTable.begin(); it != hastTable.end(); it ++){ //do s

c – std :: unordered_map如何存储和比较其键以实现快速访问元素而无需排序?

据我所知,std :: unordered_map用于快速访问元素.这通过存储和比较密钥散列而不是密钥本身来实现.此外,无序意味着其中的元素未排序.但是快速访问元素要求项目已经排序,以便能够使用二分查找来查找所请求的项目. >这是否意味着unordered_map中的项目是根据它们进行排序的 哈希键和

c – std :: unordered_multimap的存储桶是否只包含具有等效键的元素

在www.CPlusPlus.com上,它说明了unordered_multimap的以下内容, Elements with equivalent keys are grouped together in the same bucket and in such a way that an iterator (see equal_range) can iterate through all of them. 我知道我们无法从该语句中推断出这一点,但我

C在地图插入期间移动保证

我有一个代码片段,看起来有点像这样: std::unordered_map<FooId, Foo> fooMap; Foo foo1(..); fooMap.emplace(foo1.id(), std::move(foo1)); 是安全的,即C语言标准是否保证在std :: move(foo1)之前调用foo1.id()?解决方法:你问的是错误的问题:std :: move什么都不做,所以函数参数不

c – 为什么std :: unordered_map :: count上没有`noexcept`说明符?

我正在阅读关于std :: unordered_map的C++ reference page.该 empty和size方法不是合格的,但不是count. 我不认为它应该算数. 我错过了什么吗?解决方法:因为要求如此说: count返回与特定键匹配的元素数,并且对于任何无序关联容器类型X(实例化std :: unordered_maps是此类容器),对X ::

c – 不确定unordered_map的工作原理

我有点困惑,unordered_map是如何工作的,什么是桶以及如何管理它们. 从this blog post开始,unordered_map是向量的向量. 我的问题是: >假设桶是“内部”向量是正确的吗? >因为每个桶(向量)可以包含多个元素,由哈希表上的哈希冲突(“外部”向量)给出,并且因为我们必须扫描这个内部向量(

c – std :: unordered_map不释放内存

我正在观察MSVC14(VS2015)中std :: unordered_map的奇怪行为. 考虑以下场景.我创建一个无序的地图,并用虚拟结构填充它,消耗大量的内存,比如1Gb,插入总体100k元素.然后你开始从地图中删除元素.假设你已经删除了一半的元素,那么,你希望释放一半的内存.对?错误!我看到当map中的元素数量

关于C中STL容器的问题

> std :: multimap和std :: unordered_multimap是否经常随机播放条目?我问,因为我的代码传递引用以区分具有相同哈希的条目,并且我想知道何时对它们运行引用重定向功能. >如果我这样做会发生什么: std::multimap atable; //Type specification stuff left out //Code that pus in tw