-2
私のコードは、ファイル内の文字の頻度を数えます。私のコード:C++私のコードが私のベクターに余分な要素を作成するのはなぜですか?
void incCount (int i, vector<CCount> &chars)
{
int n;
n = chars[i].i;
n++;
chars[i].i = n;
}
void procWord(string word, vector<CCount> &chars)
{
for (int i=0; i<word.length(); i++)
{
bool found = false;
char a = word[i];
for (int j=0; j<chars.size(); j++)
{
if (a == chars[j].c)
{
bool found = true;
incCount(j, chars);
}
}
if (found == false)
{
CCount c; //CCount is a class with a char and int data type.
c.c = a;
c.i = 1;
chars.push_back(c);
}
}
}
int main()
{
vector<CCount> chars;
string word;
//opening file code here
while (fin >> word) {
procWord(word, chars);
}
return 0;
}
class CCount
{
public:
char c;
int i;
};
コードは私がthisを取得するベクトル要素を印刷するときがカウント手紙を蓄積しません。私はファイルのテスト入力として "これはテストデータです"を使用します
「CCount」とは何ですか? –
2つのデータメンバーcharとint –
Fyiを持つシンプルなクラスでは、大部分を投げ込み、 'std :: map'を使って大幅にスピードを上げることができます。関係なく、あなたのヒストグラムで幸運。 –
WhozCraig