std :: unordered_multimap - 将3个元素映射到一个键

时间:2018-01-29 16:32:07

标签: c++ c++11 unordered-map multimap

我的问题是以下问题的扩展: 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...................................

我如何正确使用它/或者我错过了什么?

0 个答案:

没有答案