草庐IT

Unordered

全部标签

c++ - std::unordered_map<T,std::unique_ptr<U>> 可复制?海湾合作委员会错误?

g++--version产量:g++.exe(x86_64-posix-seh-rev0,BuiltbyMinGW-W64project)4.9.1Copyright(C)2014FreeSoftwareFoundation,Inc.Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNOwarranty;notevenforMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.程序:#include#include#includestatic_assert(!std::is_cop

c++ - std::unordered_map<T,std::unique_ptr<U>> 可复制?海湾合作委员会错误?

g++--version产量:g++.exe(x86_64-posix-seh-rev0,BuiltbyMinGW-W64project)4.9.1Copyright(C)2014FreeSoftwareFoundation,Inc.Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNOwarranty;notevenforMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.程序:#include#include#includestatic_assert(!std::is_cop

c++ - 我什么时候应该使用 unordered_map 而不是 std::map

我想知道在哪种情况下我应该使用unordered_map而不是std::map。每次我不注意map中元素的顺序时,我都必须使用unorderd_map? 最佳答案 map通常使用red-blacktree实现.元素已排序。内存使用量相对较小(哈希表不需要额外的内存)。相对快速的查找:O(logN)。unordered_map通常使用hash-table实现.元素未排序。需要额外的内存来保存哈希表。快速查找O(1),但恒定时间取决于hash-function这可能相对较慢。另请记住,您可以与Birthdayproblem会面。.

c++ - 我什么时候应该使用 unordered_map 而不是 std::map

我想知道在哪种情况下我应该使用unordered_map而不是std::map。每次我不注意map中元素的顺序时,我都必须使用unorderd_map? 最佳答案 map通常使用red-blacktree实现.元素已排序。内存使用量相对较小(哈希表不需要额外的内存)。相对快速的查找:O(logN)。unordered_map通常使用hash-table实现.元素未排序。需要额外的内存来保存哈希表。快速查找O(1),但恒定时间取决于hash-function这可能相对较慢。另请记住,您可以与Birthdayproblem会面。.

C++ STL unordered_map 实现,引用有效性

对于std::map和std::tr1::unordered_map,我从标准中看到:Referencestoelementsintheunordered_mapcontainerremainvalidinallcases,evenafterarehash.他们是如何做到的(实现方面)?他们是否将所有条目维护为一种链表,然后哈希表只存储指向元素的指针? 最佳答案 是的,涉及到链表,但与您建议的方式不完全一样。2011年标准说(23.2.5第8段),“无序关联容器的元素被组织成桶。具有相同哈希码的键出现在同一个桶中。”在每个桶中,元素

C++ STL unordered_map 实现,引用有效性

对于std::map和std::tr1::unordered_map,我从标准中看到:Referencestoelementsintheunordered_mapcontainerremainvalidinallcases,evenafterarehash.他们是如何做到的(实现方面)?他们是否将所有条目维护为一种链表,然后哈希表只存储指向元素的指针? 最佳答案 是的,涉及到链表,但与您建议的方式不完全一样。2011年标准说(23.2.5第8段),“无序关联容器的元素被组织成桶。具有相同哈希码的键出现在同一个桶中。”在每个桶中,元素

当使用 vector 作为键时,C++ unordered_map 失败

背景:我来自Java世界,对C++或Qt还很陌生。为了玩unordered_map,我写了以下简单的程序:#include#include#include#include#include#includeusingstd::string;usingstd::cout;usingstd::endl;typedefstd::vectorfloatVector;intmain(intargc,char*argv[]){QCoreApplicationa(argc,argv);floatVectorc(10);floatVectorb(10);for(inti=0;imap;map[b]=135

当使用 vector 作为键时,C++ unordered_map 失败

背景:我来自Java世界,对C++或Qt还很陌生。为了玩unordered_map,我写了以下简单的程序:#include#include#include#include#include#includeusingstd::string;usingstd::cout;usingstd::endl;typedefstd::vectorfloatVector;intmain(intargc,char*argv[]){QCoreApplicationa(argc,argv);floatVectorc(10);floatVectorb(10);for(inti=0;imap;map[b]=135

c++ - 为什么unordered_map没有rbegin()和rend(),而只有begin()和end()

使用begin()、end()和前向迭代器迭代unordered_map似乎很奇怪。如果是这样,为什么它也没有rbegin()、rend()和双向迭代器?有什么技术原因吗? 最佳答案 它是无序的,所以迭代发生的顺序是(或应该是)不重要的。 关于c++-为什么unordered_map没有rbegin()和rend(),而只有begin()和end(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

c++ - 为什么unordered_map没有rbegin()和rend(),而只有begin()和end()

使用begin()、end()和前向迭代器迭代unordered_map似乎很奇怪。如果是这样,为什么它也没有rbegin()、rend()和双向迭代器?有什么技术原因吗? 最佳答案 它是无序的,所以迭代发生的顺序是(或应该是)不重要的。 关于c++-为什么unordered_map没有rbegin()和rend(),而只有begin()和end(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q