我的问题是以下问题的扩展: Searching and Inserting in a map with 3 elements in C++
除了上述情况之外,我想在地图中有一个额外的对,如下面给出的定义。
std::unordered_multimap<unsigned int,
std::pair< std::pair<unsigned int, unsigned int>, float>> wedgeAlphaMap;
这不行。 我一直为该对中的第二个变量赋值(即vi2),我得到一个垃圾值。 (代码如下所示)
wedgeAlphaMap.emplace(vi0, std::make_pair(std::make_pair(vi1,vi2), alpha) );
这就是我的方式(注意:所有人的vi2)
vi0: 2762 vi1:2758 vi2:0 Alpha:90.0000
vi0: 2762 vi1:2761 vi2:-1610612736 Alpha:11.2407
vi0: 2762 vi1:2763 vi2:-536870912 Alpha:78.7593
vi0: 2762 vi1:2767 vi2:1073741824 Alpha:50.4362
vi0: 2762 vi1:2759 vi2:-1073741824 Alpha:39.5638
vi0: 2762 vi1:2769 vi2:0 Alpha:90.0000
vi0: 40 vi1:1 vi2:-1610612736 Alpha:67.5731
vi0: 40 vi1:41 vi2:-2147483648 Alpha:67.5728
vi0: 40 vi1:35 vi2:0 Alpha:90.0000
vi0: 40 vi1:375 vi2:1073741824 Alpha:48.3076
vi0: 40 vi1:376 vi2:-1073741824 Alpha:41.6924
and so on...................................
在将它们放入地图之前进行打印:
The vi0: 40 , vi1: 1 , vi2: 376
The vi0: 1 , vi1: 376 , vi2: 40
The vi0: 376 , vi1: 40 , vi2: 1
The vi0: 376 , vi1: 1 , vi2: 377
The vi0: 1 , vi1: 377 , vi2: 376
The vi0: 377 , vi1: 376 , vi2: 1
The vi0: 3 , vi1: 195 , vi2: 193
The vi0: 195 , vi1: 193 , vi2: 3
The vi0: 193 , vi1: 3 , vi2: 195
The vi0: 193 , vi1: 195 , vi2: 194
The vi0: 195 , vi1: 194 , vi2: 193
The vi0: 194 , vi1: 193 , vi2: 195
The vi0: 97 , vi1: 5 , vi2: 98
The vi0: 5 , vi1: 98 , vi2: 97
The vi0: 98 , vi1: 97 , vi2: 5
The vi0: 98 , vi1: 5 , vi2: 99
The vi0: 5 , vi1: 99 , vi2: 98
The vi0: 99 , vi1: 98 , vi2: 5
and so on...................................
我如何正确使用它/或者我错过了什么?