gpt4 book ai didi

c++ - 就地更新 map

转载 作者:搜寻专家 更新时间:2023-10-31 01:36:59 24 4
gpt4 key购买 nike

我有一段代码可以处理 map<int,int>目的。假设在某个时候我想将所有条目、键和值加倍。有没有一种方法可以在不创建新 map 、循环和输入更新条目的情况下就地执行此操作?

我关心的是节省内存空间。

最佳答案

可以像这样将值加倍:

std::map<int,int> my_map;
for(auto& item:my_map){
item.second*=2; // double all values
}

但是,不可能将 Key 加倍自 item来自 std::pair<const int,int> 类型.注意 const对于 Key .

建议:

我认为std::map不是这种情况下的最佳容器。试试这个方法:

std::vector<std::pair<int,int>> my_simi_map;
for(auto& my_simi_map){
item.first*=2; // double all keys
item.second*=2; // double all values
}

编辑:

My concern is saving memory space.

如果只是内存问题,那么你可以从 map 中选择一个项目并将它的双倍版本插入到新 map 中,然后直接从旧 map 中删除它。在这种情况下,您将丢失 map 的一个元素的大小,而不是整个另一张 map 。

关于c++ - 就地更新 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com