我是C++的新手,目前正在学习一本名为《加速C++》的书。我完成了第三章(向量),并接触到了这个练习题:
“编写一个程序来计算输入中每个不同单词出现的次数。”
经过一番思考,我开始着手解决这个问题。我想测试程序,但是std::cout没有起作用。我在我的代码中放置了
recenica - 句子;rijec - 一个单词;vel_vektora - 向量的大小;duz_recenice - 句子的长度;br_ponavljanja - 单词在句子中出现的次数;
“std::cout”有什么问题?
“编写一个程序来计算输入中每个不同单词出现的次数。”
经过一番思考,我开始着手解决这个问题。我想测试程序,但是std::cout没有起作用。我在我的代码中放置了
cout << "test";
,以查看问题所在,并得出结论:它不起作用于第一个for循环内部。不要建议我使用映射来解决问题,因为我正在使用向量。变量不是英文的,所以我会为您翻译一些内容,以便您知道发生了什么:recenica - 句子;rijec - 一个单词;vel_vektora - 向量的大小;duz_recenice - 句子的长度;br_ponavljanja - 单词在句子中出现的次数;
#include <vector>
#include <iostream>
#include <string>
using std::string; using std::vector;
using std::cin; using std::cout;
using std::endl;
int main()
{
string rijec;
vector<string> recenica;
while (cin >> rijec) recenica.push_back(rijec);
cout << endl;
typedef vector<string>::size_type vel_vektora;
vel_vektora duz_recenice = recenica.size();
cout << "test0, ";
for (int i = 0; i < duz_recenice - 1; ++i)
{
cout << "test, !";
int br_ponavljanja = 1;
for (int j = i + 1; j < duz_recenice; ++j)
{
cout << "test2, ";
if (recenica[i] == recenica[j])
{
cout << "test3, ";
++br_ponavljanja;
recenica.erase(recenica.begin() + j);
}
cout << "test4, ";
}
cout << recenica[i] << ": " << br_ponavljanja << endl;
}
cout << "test5, ";
getchar();
return 0;
}
“std::cout”有什么问题?