如何在 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;
我创建了一个多图,其中键作为 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;