J'ai un tableau de mots, et j'ai un fichier texte. Ce que je veux faire est d'utiliser le tableau de mots et de rechercher dans le fichier texte, compter le nombre de fois que chaque mot dans le tableau apparaît dans le fichier texte.C++ Comment rendre ce code plus efficace?
J'ai envisagé d'utiliser une boucle For, mais cela m'a donné le total du nombre de mots et non le nombre de mots individuels pour chacun. Je ne peux pas mettre le fichier texte dans un tableau car il y a environ 40000 mots dans le fichier texte. Après le comptage, je souhaite diviser chaque compte par une valeur entière appelée "échelle". Et puis mulitply une chaîne par le nouveau nombre de compte.
Donc, je le fais actuellement comme indiqué ci-dessous. Y at-il de toute façon je peux rendre cela plus efficace?
Toute aide est grandement appréciée.
Tableau de mots = mots de test.
Nom du fichier = testF.
inWord = chaque mot du fichier.
while(testF >> inWord)
{if (inWord == testwords[0]){
count1++;
}
if (inWord == testwords[1]){
count2++;
}
if (inWord == testwords[2]){
count3++;
}
if (inWord == testwords[3]){
count4++;
}
if (inWord == testwords[4]){
count5++;
}
if (inWord == testwords[5]){
count6++;
}
if (inWord == testwords[6]){
count7++;
}
if (inWord == testwords[7]){
count8++;
}
}
cout << testwords[0] << " " << count1 << " " << s1.append(count1/scale, '*') << endl;
cout << testwords[1] << " " << count2 << " " << s2.append(count2/scale, '*') << endl;
cout << testwords[2] << " " << count3 << " " << s3.append(count3/scale, '*') << endl;
cout << testwords[3] << " " << count4 << " " << s4.append(count4/scale, '*') << endl;
cout << testwords[4] << " " << count5 << " " << s5.append(count5/scale, '*') << endl;
cout << testwords[5] << " " << count6 << " " << s6.append(count6/scale, '*') << endl;
cout << testwords[6] << " " << count7 << " " << s7.append(count7/scale, '*') << endl;
cout << testwords[7] << " " << count8 << " " << s8.append(count8/scale, '*') << endl;
obligatoire utiliser un commentaire de profileur :) – EvilTeach