c++怎么用stl删除相同的字符串 5
考虑一个名称的文本文件,每行有一个名称,它是从不同的来源编译而来的。一个样品文件如下所示:文件中有重复的名称。我们想要生成邀请列表但不想发送多个同一个人的邀请。编写一个程...
考虑一个名称的文本文件,每行有一个名称,它是从不同的来源编译而来的。 一个样品文件如下所示:文件中有重复的名称。 我们想要生成邀请列表但不想发送多个同一个人的邀请。 编写一个程序,通过使用STL消除重复的名称组。 从文件中读取每个名称,将其添加到集合中,然后输出集合中的所有名称以生成邀请列表没有重复。
展开
展开全部
//刚写的code,测试通过,如果有疑问,欢迎交流//思路:用map保存每个字符出现的次数#include<iostream>#include<map>using namespace std; int main(){ char str[100]; gets(str); int cur_idx = 0; int cur_next = 0; map<char, int> char_counts; while(str[cur_idx] != '\0'){ //判断当前字符,是否出现过 if(char_counts.count(str[cur_idx]) == 0){ char_counts[str[cur_idx]] = 1; str[cur_next] = str[cur_idx]; cur_next++; cur_idx++; }else{ char_counts[str[cur_idx]]++; cur_idx++; } } str[cur_next] = '\0'; puts(str); map<char, int>::iterator cur_it = char_counts.begin(); for(;cur_it!=char_counts.end();cur_it++){ cout<<cur_it->first<<":"<<cur_it->second<<endl; } return 0;}
追问
找不到gets 还有就是 读文件到数组 这一块
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询