如何在 Multimap C++ 中查找特定键的值总数

How to find the total number of values for a particular Key in Multimap C++

我创建了一个多图,其中键作为 Mod 值,VALUE 作为被修改的数字。就像哈希 table.

vector<int> A{1,2,3,4,5,6,7,8,9};
int n=A.size();
multimap<int,int> mymap;

int sqvalue=sqrt(n);

for(int i=0;i<n;i++)
{
   int temp=A[i]%sqvalue;
   mymap.insert(pair<int,int>(temp,A[i]));
}

Q1。如何获得所有 KEYS 的 VALUES 总数?例如,Key 2 中有多少个数字? Q2。如何将所有值打印到其键?

谢谢。

您可以使用 equal_range,其中 returns 范围包含具有给定键的所有值。

auto rng = myMap.equal_range(key);
// e.g. sum of the valuse
auto sum = std::accumulate(rng.first, rng.second, 0);
// Or print
for(auto it = rng.first; it != rng.second; ++it)
      std::cout<<elm->second;