gpt4 book ai didi

c++ - 如何从 multimap 中删除重复的字符串值

转载 作者:行者123 更新时间:2023-11-30 01:03:50 28 4
gpt4 key购买 nike

我有一个 std::multimap,它有多个具有相同键和值的条目,我想删除所有重复值,只保留索引最高的那个。到目前为止,我有这样的东西:

#include <iostream>
#include<iterator>
#include <map>


int main(void)
{

std::multimap<double, std::string> m;

m.insert(std::pair<double,std::string>(79.43567,"ARH1265"));
m.insert(std::pair<double,std::string>(82.96567,"ARH1265"));
m.insert(std::pair<double,std::string>(94.03261,"TE5748"));
m.insert(std::pair<double,std::string>(73.53961,"TE5748"));
m.insert(std::pair<double,std::string>(93.43567,"CRP5285"));

std::cout << "size: " << m.size() << std::endl;

std::multimap<double, std::string>::iterator it;
for (it = m.begin(); i!=m.end(); i++) {
// ???
}
}

我想以 map 中包含三个条目的 map 结束:

82.96567, ARH1265
94.03261, TE5748
93.43567, CRP5285

最佳答案

如果可以,将 std::multimap 替换为 std::mapstd::unordered_map,并反转键和值。 (键 = string 和 value = double)。

插入时,判断要插入的值是否大于map中的值,不大于则不插入。

如果你不能替换multimap,你可以用一个临时map使用上面的方法,清除multimap并将临时map的内容插入回multimap。

关于c++ - 如何从 multimap 中删除重复的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897775/

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