我是C++的新手,現在我正在從名爲的書中學習加速的C++。我完成了第三章(矢量),然後我來到這個練習:std :: cout不工作在for循環內
「編寫一個程序來計算每個不同單詞在其輸入中出現的次數。」
經過一番思考,我開始研究它。我想測試該程序,但std :: cout不起作用。我在代碼的幾個地方放了cout << "test";
來查看問題出在哪裏,結論是它在第一個for循環中不起作用。不要推薦我使用地圖來解決問題,因爲我正在處理矢量。變數不是英文的,所以我會翻譯一些給你,以便知道發生了什麼事情:
recenica - the sentence; 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
有什麼問題?
我建議你在調試器中一步一步地運行你的應用程序,並觀察變量的值來找出問題所在。如果向量中只有一個單詞,則不會執行外部for循環 –
它如何「不工作」? – ybungalobill
@Marius:+1思考角落案例始終是一個很好的調試提示。 – fredoverflow