草庐IT

imap_unordered

全部标签

c++ - 为什么 Netbeans 无法识别 `cbegin()` 、 `cend()` 、 `unordered_set` 以及其他 C++ 功能?

我的C++应用程序在Netbeans中按预期编译和运行。但是,代码帮助无法识别诸如cbegin()、cend()、unordered_set之类的术语,如红色下划线所示:然而,代码帮助确实识别end()。无济于事,我尝试转到项目->属性->代码帮助->C++标准->C++11。我还应该更新或配置哪些内容才能让Netbeans代码帮助识别这些术语? 最佳答案 请确保您使用的是Netbeans版本>=7.2,因为此版本(see"C/C++")中引入了C++11支持。如果您已经在NB中将C++标准设置为C++11,您可以重新解析您的项目:

c++ - unordered_map 相同键的迭代顺序

当遍历std::unordered_map时,STL不保证考虑哪个特定元素顺序。我的问题是关于具有相同键的元素的顺序,我用不同的编译器尝试过,如果它们具有相同的键,我总是一个接一个地收到(下面的示例)。我搜索了它,但找不到。它是在标准中的某处提到的还是依赖于实现的?unordered_multimapumap;umap.insert({30,9});umap.insert({10,1});umap.insert({20,5});umap.insert({30,8});umap.insert({20,4});umap.insert({10,2});for(autop:umap)cout输

c++ - 有没有办法防止在 STL unordered_map 上插入或删除?

我经常使用带有固定/常量键但可变值的unordered_maps。示例:如果您有一个enumDimension{X,Y},您可能希望为每个存储一个数据点,但不允许对map进行插入或删除。更新正常。初始化示例:typedefstd::unordered_mapDimension_To_Size_Map;//assumestd::hashhastemplatespecialisationforenumDimension_To_Size_Mapdimension_To_Size_Map={{Dimension.X,0},{Dimension.Y,0}};dimension_To_Size_M

c++ - unordered_map 没有匹配的调用错误

我的台词:unordered_map,longlong>myMap;错误:error:nomatchingfunctionforcallto'std::unordered_map,longlongint>::unordered_map()'重现错误的代码:#include#include#include#include#include#includeusingnamespacestd;unordered_map,longlong>myMap;intmain(){return0;} 最佳答案 std::unordered_map需要哈

c++ - 不确定 unordered_map 是如何工作的

我对unordered_map的工作原理、桶是什么以及它们的管理方式有点困惑。来自thisblogpost,unordered_map是vector的vector。我的问题是:假设桶是“内部”vector是否正确?由于每个桶(vector)可以包含多个元素,由哈希表(“外部”vector)上的哈希冲突给出,并且由于我们必须扫描这个内部vector(在线性时间内),是否正确假设我们必须在键类型上定义equal方法(沉迷于哈希运算符)以便在存储桶中找到键?默认情况下外部vector(哈希表)的大小是多少?默认的内部vector大小是多少?如果一个桶中的元素数量变得太大会怎样?换句话说,当重

c++ - std::unordered_set 中的 KeyEqual 有什么用?

std::unordered_set中的第三个参数KeyEqual的目的是什么?哈希唯一性还不够吗?template,classKeyEqual=std::equal_to,classAllocator=std::allocator>classunordered_set;抱歉,如果这个问题听起来很幼稚。从Python/PHP迁移到C++:)目前,我对KeyEqual的实现总是重复Hashimpl。所以我想知道我是否做对了。 最佳答案 让我们举个例子,一组int有一个散列函数,它只做一个简单的mod%操作structIntMod{co

c++ - 有效删除 tr1::unordered_map 中的元素

我正在试验tr1::unordered_map并偶然发现了如何解决这个问题有效地删除元素。“删除”方法提供按键删除或通过迭代器。我认为后者更有效率,因为前者大概涉及隐式查找操作。另一方面,我的调查网上有透露迭代器调用后可能会失效insert()方法。我对典型的现实世界情况感兴趣,其中将对象放入哈希表有一个足够长的生命周期,以便在此期间调用insert()生命周期。因此我可以得出结论,在这种情况下,按键删除是唯一的还剩选项?有没有其他方法可以更有效地删除对象?我是充分意识到这个问题只在发生删除的应用程序中很重要经常。我当前的项目是否会出现这种情况,还有待观察,但是我宁愿在设计我的项目时了

c++ - 插入 unordered_map 时没有匹配函数

我声明一个unordered_map如下:boost::unordered_map,t_torrent>torrent_ins;然后向其中插入一个元素(如果键不存在,该映射将返回新元素的引用)t_torrent&torrent_in=torrent_ins[to_array(in)];但是我收到一条错误信息:../src/Tracker/torrent_serialization.cpp:30:instantiatedfromhere/usr/local/include/boost/functional/hash/extensions.hpp:176:error:nomatchingf

c++ - 通过 operator[] 访问静态成员 unordered_map

作为C++的新手,我遇到了一些我不太理解的行为,并且即使通过大量谷歌搜索也无法找到解释,所以我希望有人能解释这里到底出了什么问题。//test.h#includetypedefstd::unordered_maptest_type;classtest{public:staticconsttest_typetmap;};//test.cpp#include"test.h"consttest_typetest::tmap={{1,1}};//main.cpp#include"test.h"intmain(){//Attempt1:accesskeyviaoperator[]std::cou

c++ - 使用两个对象作为 unordered_map 或替代方案的哈希键

定义对象myType后,我需要存储这些对象之间的关系。这些关系存储在矩阵中。事先不知道元素的数量,并非所有元素都有关系(element1可以与element3有关系,但可能与5没有关系)并且内存是一个问题。例如它可能看起来像:element45与:具有特征[3,1;1,4]的元素3具有特征[1,1;1,1]的元素12具有特征[8,1;1,4]的元素1780element1661连接到:具有特征[3,1;6,4]的元素3具有特征[1,1;1,9]的元素1具有特征[8,1;1,1]的元素1780拥有:myType*element1;myType*element2;我想要类似的东西(正确指出