【发布时间】:2018-11-11 00:04:22
【问题描述】:
我在 C++ 中使用 STL 映射来计算文本文件中单词的频率,并且单词必须按字典顺序排序。输入数据以文本文件的形式给出。我已经阅读并在地图中添加了它们,但我在排序时遇到了问题。
例如,我有 { "Abc", "abc", "bag", "Boom", "great"}。当我在地图中添加它们时,我得到了
Abc 1 Boom 1 abc 1 bag 1 great 1
但预期的结果是
Abc 1 abc 1 Boom 1 bag 1 great 1
#include <iostream>
#include <cstring>
#include <map>
#include <fstream>
using namespace std;
typedef map<string, int> word_count;
int main(){
word_count wc;
fstream f_in;
f_in.open("test.in");
string x;
while( !f_in.eof()){
f_in >> x;
wc[x]++;
}
f_in.close();
return 0;
}
这是我用于读取输入的代码。对我的问题有什么帮助吗?谢谢
【问题讨论】:
-
欢迎来到 Stackoverflow。你的排序问题到底是什么?你试过什么了。作为一般规则,这里更具体的问题会吸引更高质量的回复。
-
您也可以尝试格式化您的代码以使用空格来使块真正明显。这有助于思考代码,也有助于其他人更快地理解代码。
-
std::map已经使用operator<进行了排序,因此它们已经按照您想要的顺序排列。你有什么问题? -
我已经阅读并添加到地图中 -- 现在遍历你的地图从
map.begin()到map.end()并查看@987654328 的first@ 映射的每个元素。瞧,数据已排序。
标签: c++