C++ 地图STL的第二个元素的默认值?
如果使用数组初始化map STL中的第二个元素,那么它的默认值是多少? 例如:C++ 地图STL的第二个元素的默认值?,c++,dictionary,data-structures,stl,C++,Dictionary,Data Structures,Stl,如果使用数组初始化map STL中的第二个元素,那么它的默认值是多少? 例如: #include <bits/stdc++.h> using namespace std; void countFreq(int arr[], int n) { unordered_map<int, int> mp; // Traverse through array elements and // count frequencies
#include <bits/stdc++.h>
using namespace std;
void countFreq(int arr[], int n)
{
unordered_map<int, int> mp;
// Traverse through array elements and
// count frequencies
for (int i = 0; i < n; i++)
mp[arr[i]]++;
// Traverse through map and print frequencies
for (auto x : mp)
cout << x.first << " " << x.second << endl;
}
int main()
{
int arr[] = { 10, 20, 20, 10, 10, 20, 5, 20 };
int n = sizeof(arr) / sizeof(arr[0]);
countFreq(arr, n);
return 0;
}
#包括
使用名称空间std;
无效计数频率(整数arr[],整数n)
{
无序地图mp;
//遍历数组元素和
//计数频率
对于(int i=0;i cout映射的第二个元素在至少尝试访问其密钥一次后,默认情况下初始化为0(如果其类型是代码中的int)。因此,当您第一次访问某个元素x时,mp[x]变为0,然后在代码中计数时增加1
如果使用数组初始化map STL中的第二个元素,那么它的默认值是什么
使用运算符[]访问std::map
中的键值对(kvp)时
,或者密钥已经存在,或者构造了新的kvp,并且映射的类型为。初始化的值int
始终为0。这要求它必须是默认可构造的。请注意,您还可以使用成员函数访问映射中的条目,如果找不到密钥,该函数将抛出
该程序如何通过访问map mp的第二个元素来返回数组中元素的频率
您已经在代码段中正确地执行了此操作。您可以使用或,它们提供了一个成员函数,即键的频率
#include <set>
#include <iostream>
int main()
{
int arr[] = { 10, 20, 20, 10, 10, 20, 5, 20 };
std::multiset<int> freq (std::begin(arr), std::end(arr));
for(auto elem = freq.begin();
elem != freq.end();
elem=freq.upper_bound(*elem)) // Traverse the unique elements
{
std::cout << *elem << " count: " << freq.count(*elem) << "\n";
}
}
#包括
#包括
int main()
{
int arr[]={10,20,20,10,10,20,5,20};
std::multiset freq(std::begin(arr)、std::end(arr));
对于(自动元素=频率开始();
元素!=频率结束();
elem=freq.upper_bound(*elem))//遍历唯一元素
{
std::cout映射中未包含的项的默认值为0。@drescherjm假设您使用运算符[]是的,新映射值为。对于int
,这意味着。当mp[arr[i]]++< /COD>执行它或增加现有值,或者如果需要,创建一个新的键值对,0在增量之前初始化值。对发生的描述是在。如果你对C++文档是新的,可能不清楚但是细节是存在的。