c++ - 有没有办法将元素及其频率一起存储在同一个数据结构中?
问题描述
我一直在研究数组的问题,并且必须考虑每个元素的计数并在那时和那里动态更改。我想知道是否有办法将元素和频率都存储在一个数据结构中。 任何带有 cpp 代码的解决方案都会有所帮助。
解决方案
int main()
{
int a[]={1,1,1,2,2,3,4};
map<int,int> m;
map<int,int>::iterator it;
for(int i=0;i<7;i++)
{
it=m.find(a[i]);
if(it!=m.end()) it->second++;
else m.insert(pair<int,int>(a[i],1));
}
//printing the output
for(auto i=m.begin();i!=m.end();i++)
cout<<i->first<<"->"<<i->second<<"\n";
}
是的,您使用地图来存储元素及其计数。在这里,我使用了迭代器和 find 函数来检查元素是否存在。如果存在,则将计数增加 1,即 it->second++。否则,您可以使用插入函数在地图中插入新元素。
推荐阅读
- fortran - 虚拟调用对 Fortran 程序有影响吗?
- azure - 嵌套 If 语句 Powershell
- flutter - 在表中使用 TextFormField (DataTable)
- javascript - 如何在 Firebase Firestore 中使用多个 orderBy 查询进行排序?
- tensorflow - 无法在 keras 中使用 ImageDataGenerator 获得可重现的结果
- php - 使用 dom outerhtml 时 str_replace 不替换我的 h2 标签
- javascript - 如何将 Angular clientHttp 转换为 node.js
- vapor - Vapor 4:创建包含 Fluent ParentProperty 的协议会导致编译器错误
- php - 表单中的嵌套 href
- javascript - Rails 缺少部分 *.js.erb