A [3] = 4; A [8] = 9; A [3] = 10; A [6] = 7; A [3] = 78;如何在C++的地图中找到具有相同键值的总数?
例如...在这里,我怎样才能打印键值总数为3?
A [3] = 4; A [8] = 9; A [3] = 10; A [6] = 7; A [3] = 78;如何在C++的地图中找到具有相同键值的总数?
例如...在这里,我怎样才能打印键值总数为3?
由于地图中的每个键都是唯一的,因此答案为0
。
无法为同一个密钥存储多个值。如果你想有多个值,你应该使用地图< int,vector < int >>并迭代你的密钥的每个值。
由于地图只能使用特定键保存单个值,因此答案始终为0(该键不在地图中)或1(该键在地图中)。 find
可以帮您找到它:
typedef std::map<int, Foo> Map;
// untested code :-)
int numWithValue (const Map &mp, int val) {
return mp.find(val) != mp.end() ? 1 : 0;
}
如果你想多值存储使用相同的密钥,然后multimap
可能是您正确的数据结构。
如果您需要为同一个键存储多个值,则可以使用std :: multimap。
知道有多少价值有关键3,使用计数
std::multimap<int, int> A = { { 3, 4 }, { 8, 9 }, { 3, 10 }, { 6, 7 }, { 3, 78 } }; A.count(3);