问题标签 [stdmap]

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.

0 投票
0 回答
2477 浏览

runtime - 异常的 std::map 运行时错误

我正在为我正在开发的游戏编写一个编辑器,作为该编辑器的一部分,我显然需要有纹理。我已经创建了一个 std::map 变量,

在我的图像加载代码中,我有以下代码段。

现在由于某种原因,在尝试使用上述代码后出现运行时错误。访问冲突错误,在调试时将我指向 std::map 代码本身,特别是这部分:

我只是为了测试系统而调用我的图像加载功能。我检查了变量,文件名和 id 变量都是正确的。关于可能导致运行时崩溃的任何想法?

0 投票
7 回答
85530 浏览

c++ - 如何在控制台上显示地图的内容?

我有一个map声明如下:

如何在控制台上显示存储在上述地图中的项目?

0 投票
8 回答
138586 浏览

c++ - 如何在 C++ 中迭代一个充满字符串的 std::map

我有以下与迭代使用定义的字符串关联数组有关的问题std::map

在构造函数中,我使用与字符串数据关联的字符串键对填充表。在其他地方我有一个方法toString,它返回一个字符串对象,该对象包含表对象中包含的所有键和关联数据(作为键=数据格式)。

当我尝试编译时,出现以下错误:

有人可以向我解释缺少什么,我做错了什么吗?hash_map在用户必须定义​​散列函数才能hash_mapstd::string对象一起使用的情况下,我只发现了一些关于类似问题的讨论。在我的情况下也可能是类似的东西吗?

0 投票
5 回答
32179 浏览

c++ - 如何将一张地图的内容附加到另一张地图?

我有以下两张地图:

我填充map1了以下内容:

然后我将内容复制map1map2如下:

然后我再次填充map1了以下新内容:

现在我必须将此内容附加到map2. 我不能使用map2 = map1;,因为这会覆盖map2. 那么,我该怎么做呢?

0 投票
3 回答
3478 浏览

c++ - C++ 在 std::map 中存储对值的引用

我是否正确假设向 std::map 添加/删除元素不会影响其他元素(即导致它们在内存中重新定位),因此以下内容是安全的:

我查看了有关容器信息的各个站点,但只发现了迭代器无效的情况,我已经知道了......

我在 VC9 上测试了一些类似的代码,这似乎可以工作,但这并不意味着我不只是幸运,或者它不会因编译器而异。

0 投票
8 回答
119963 浏览

c++ - 如何使用 std::maps 和用户定义的类型作为键?

我想知道为什么我不能将 STL 映射与用户定义的类一起使用。当我编译下面的代码时,我收到以下神秘的错误消息。这是什么意思?另外,为什么它只发生在用户定义的类型上?(原始类型在用作键时是可以的。)

C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\stl_function.h||在成员函数`bool std:: less<_Tp>::operator()(const _Tp&, const _Tp&) const [with _Tp = Class1]':|

C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\stl_map.h|338|从`_Tp& std:: 实例化map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key = Class1, _Tp = int, _Compare = std::less, _Alloc = std::allocator >]'|

C:\Users\Admin\Documents\dev\sandbox\sandbox\sandbox.cpp|24|从这里实例化|

C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\include\c++\3.4.5\bits\stl_function.h|227|error: no match for 'operator <' 在 '__x < __y'| ||=== 构建完成:1 个错误,0 个警告 ===|

0 投票
10 回答
70403 浏览

c++ - 将两个键与 std::map 一起使用的最佳方法是什么?

我有一个std::map用于存储 x 和 y 坐标的值。我的数据非常稀疏,所以我不想使用数组或向量,这会导致大量内存浪费。我的数据范围从-250000到250000,但我最多只有几千个点。

目前我正在std::string使用两个坐标(即"12x45")创建一个并将其用作键。这似乎不是最好的方法。

我的其他想法是使用 int64 并将两个 int32 推入其中并将其用作键。

或者使用具有两个坐标的类。对用作键的类有什么要求?

做这个的最好方式是什么?我宁愿不使用地图的地图。

0 投票
6 回答
5258 浏览

c++ - 如何初始化静态 std::map?

我已经创建了一个仅消息窗口类,并且正在尝试将 HWND 映射回具有这些句柄的对象。我正在尝试使用std::map<HWND, CMyClass*>属于该类的私有静态来做到这一点,如下所示:

MyClass.h:

我的类.cpp:

但是当我尝试添加到地图时,程序崩溃了。我尝试了三种不同的形式,它们都给出了相同的错误:

或者

甚至

_Root()在每种情况下,都会在尝试返回的调用时发生崩溃_Parent(_Myhead)_Parent(_Myhead)返回(_Nodepref)(*_Myhead)._Parent失败,因为_Myhead它是空的。

如何初始化地图,使其头部不为空,并且我可以插入东西而不会崩溃?抱歉,如果我解释得不好 - 我是 C++ 新手。

0 投票
4 回答
3723 浏览

c++ - std::map 之间有区别吗和 std::map?

据我了解, std::map 中的值对中的键一旦插入就无法更改。这是否意味着使用 const 键模板参数创建映射无效?

0 投票
3 回答
2022 浏览

c++ - 如何将 2D 地图作为参数传递给 C++ 中的函数?

我有一张像

如何将此映射作为参数传递给函数说 Perform()?

提前致谢。