需要计算特定单词的实例数
Need to count number of instances of a specific word
我有一个家庭作业问题,它想要一个程序来计算用户输入中特定单词的实例数。它只需要计算空格之间的单词。我认为我们需要使用一个向量,并在每次出现"单词"实例时添加它。然后在最后,使用 v.size() 来告诉向量的大小。这是我到目前为止所拥有的,但它不会编译,我很确定它不正确:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
string word;
vector<string> v;
while (cin >> word)
{
if (v == "word")
{
v.push_back (word);
}
}
cout << v.size();
return 0;
}
-
if(v == "word")
- 您正在尝试将向量v
与"单词"字符串进行比较。输入存储在word
变量中。如果你要计算的单词是"单词",那么它应该是if(word == "word")
。 -
你不需要
push_back
你的话——你很清楚它们都是一样的,对吧?相反,创建一个计数器变量,并在每次遇到所需单词时递增它。
这些想法应该能帮助你入门。
v
== "单词"对我来说没有意义。 v 是一个向量,对吗?如果是这样,v == "word" 正在将字符串向量与字符串进行比较,这是行不通的。
我个人建议使用地图或字典。下面是有关 c++ 映射的文档。惊人的数据结构 0.0
http://en.cppreference.com/w/cpp/container/map
我在大学时做过类似练习的方式是这样的:
//Pseudocode activate
Map<string, int> my_map = new Map();
String word;
while(there is input){
my_map.at(word)++;
}
for all entries in my_map{
print my_map keys: my_map values
}
如果你只需要计算"单词"的数量,你可以使用类似的东西:
int count = -1;
do
{
cout << "Word: ";
cin >> word;
count++;
system("cls");
}while(condition)
printf("Result:%d", cout);
和一个计数来获得条件的数量 == true
相关文章:
- 从C++实例化QML
- 文本文件中的单词链表
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- 在指针的帮助下,文本文件中单词的频率
- 如何创建一个空的全局类并在启动时实例化它
- 无法创建抽象类的实例
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 我收到以下错误:抛出'std::bad_alloc'实例后终止调用
- 如何根据单词在文本中出现的概率输出单词
- 建议在运行时将带有类实例的列表从c++导入qml
- 约束和显式模板实例化
- 通过实例理解std::move及其目的
- 从字符串变量中逐字符读取单词
- 基于单词随机实例化
- 搜索数组以查找单词的单独实例