在c++中将文字从文本文件加载到映射中
Loading words from a text file to a map in c++
我正在尝试制作一个程序,该程序计算特定单词出现在文本中的次数。单词列表将在一个文本文件中,而文本将在另一个文本文件中。列表中的单词和单词数量是未知的。我的计划是将单词列表制作成map<string,int>name
风格的映射,将不同的单词作为键,然后在映射中将值增加1。
下面是一个例子:
File.txt:
This is the text the program will analyze with the other file. Fun stuff.
List.txt:
the
other
normal
运行程序时的预期结果是:
name[the] = 3
name[other] = 1
name[normal] = 0
我需要帮助解决的主要问题是如何从文本文件中的单词制作地图。我可能可以自己整理其他的东西。显然,我不能向您展示我的任何代码,因为我需要在开始之前对其进行排序。
而且,这不是赋值,所以我可以用其他方式来做。请告诉如果你知道一个更有效的方法来做到这一点!
-
从text文件中读取一个单词
-
增加该单词的映射项
(重复)
从words文件中读取一个单词
输出该单词的映射条目
(重复)
your_map。Insert (std::pair(your_string, your_int));
如果没有很多单词,也可以考虑使用multimap,然后调用count:
http://www.cplusplus.com/reference/map/multimap/count/这在很大程度上取决于你希望文本文件在单词列表中所占的百分比。如果你希望大多数单词都在列表中,那么@DrewDorman的解决方案应该可以很好地工作。
如果你希望列表中只有一小部分单词,那么这可能是相当浪费的。在这种情况下,您可能希望首先将列表中的单词插入到映射中(计数为0),然后当您从文本文件中读取单词时,在映射中搜索每个单词,并当且仅当该单词的条目已经存在于映射中时增加计数。
相关文章:
- 将 bmp 文件加载到 TSpeedButton 中
- 如何将文本文件加载到 QListwidget 并将其保存回来
- 从 C 可执行文件加载动态库时收到错误C++"undefined symbol"
- 优化从文件加载QImage
- 将csv文件加载到MySQL C++中
- 从文件加载结构
- 如何在 QT 中显示文件加载状态
- C++ 如何从文件加载异类集合
- 从文本文件加载链表并打印时无限循环
- Kotlin 从文件加载类的集合?
- 如何从文件加载QJsonDocument
- SFML 将图像从 txt 文件加载到矢量中仅加载最后一个图像
- 使用ifstream从DAT文件加载数据
- 从 C 中的文件加载结构时出现分段错误
- 从二进制文件加载列表后,我的代码似乎进入了无限循环
- Qml:从文件加载组件时将参数作为 URL 的一部分传递
- 将浮点数保存在文本文件中,然后从文本文件加载回去(OpenGL和C++)
- 从TXT文件加载迷宫
- 从文件加载uint64_t值
- 如何在 c++ 中将二进制文件加载/读取到"vector<vector< bitset<32> >"中?