如何解决如何增加地图中的前一个值?
我在 C++ 中使用 std::map 数据结构,并且每次都尝试在某个位置增加值。
所以我正在迭代一个 array
,其中存储了唯一的整数。
我试图做的是,当我迭代数组时,将存储在数组特定索引中的值作为键传递给我的地图。
例如:
std::map<int,int> my_map;
for(int i = 0; i < array.size(); ++i)
{
my_map.insert(array[i],...); // the ... part is supposed to be the increment
}
我想通过 ++my_map[array[i]]
。我还没有尝试过,因为我目前无法访问我的笔记本电脑。这只是我不在家时想到的一个想法,我想问问是否确定。
此外,如果 my_map[array[i]]
有效,我想将其用作循环中的 if 语句:
std::map<int,int> my_map;
for(int i = 0; i < array.size(); ++i)
{
// set the initial value to 0 if the element doesn't exist in the map
// else increment the prevIoUs value by one
if(!my_map.find(array[i]))
{
my_map.insert(array[i],0);
}
else
{
my_map.insert(array[i],++my_map[array[i]]);
}
}
如果我脑子里有问题,请纠正我。我希望我把我的问题翻译得足够好让你理解它。谢谢大家!
for(int i = 0; i < array.size(); ++i)
{
// set the initial value to 0 if the element doesn't exist in the map
// else increment the prevIoUs value by one
if(!(my_map.count(array[i])))
{
my_map.insert(std::pair<int,int>(array[i],0));
}
else
{
my_map.insert(std::pair<int,++my_map[array[i]]));
}
}
再次感谢大家!!!
解决方法
if(my_map.find(array[i])==my_map.end()){//YOU CAN ALSO USE stl function count
my_map.insert(make_pair(array[i],0));
}else{
my_map.insert(make_pair(array[i],++my_map[array[i]]));
}
OR:
if(my_map.find(array[i])==my_map.end()){
my_map[array[i]]=0;
}else{
my_map[arr[i]]++;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。