c++ - 如何使用map c ++删除重复
问题描述
所以我有Text.txt,国家和河流在哪里。所以我必须输出河流和当前河流存在的所有国家。
文本.txt:
Spanish Taho
France Rhine
Ukrain Dnipro
Germany Rhine
Russia Dnipro
Portugal Taho
代码:
#include <iostream>
#include <map>
#include <string>
#include <fstream>
using namespace std;
int main()
{
map<string, string> country;
ifstream in("Text.txt");
string key;
string river;
while (in >> key >> river)
{
country[key] = river;
}
map<string, string>::iterator it;
map<string, string>::iterator it2;
for (it = country.begin(); it != country.end(); it++) {
cout << it->second << ":" << endl;
for (it2 = country.begin(); it2 != country.end(); ++it2) {
if (it->second == it2->second ) {
cout << "-" << it2->first << endl;
}
}
}
cout << endl;
system("pause");
return 0;
}
结果:
Rhine:
-France
-Germany
Rhine:
-France
-Germany
Taho:
-Portugal
-Spanish
Dnipro:
-Russia
-Ukrain
Taho:
-Portugal
-Spanish
Dnipro:
-Russia
-Ukrain
我需要的:
Rhine:
-France
-Germany
Taho:
-Portugal
-Spanish
Dnipro:
-Russia
-Ukrain
如何去除重复?
一些用于转义的文本“看起来您的帖子主要是代码;请添加更多详细信息。” 错误
解决方案
您的数据结构不适合该解决方案。
试试下面:
map<string, vector<string>> riverToCountryMap
在插入数据时:
riverToCountryMap[河流].push_back(国家);
推荐阅读
- cognos - 在 Cognos 11 中隐藏交叉表节点
- python - 在 RDD 元素上评估 pyspark 中的 Xquery
- odoo - 将应用程序发布到 odoo.com 网站时面临问题
- git - 有没有办法从某个路径查找 git 分支中更改的所有文件?
- reactor - 为什么无法在 reactor-netty 中订阅请求?
- swift - RealityKit – 材质的 Alpha 透明度
- json - 查找比使用 JSON 运算符更高的价格
- javascript - TypeScript:Promise 中的错误未被捕获
- javascript - 当我使用 ajax 从标签中获取值时,我的搜索查询不起作用
- xamarin.forms - 从右到左或从左到右动画页面?