У вас ошибка в описании второй программы на D: она не подсчитывает частотность. Она выводит все уникальные слова.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
unsigned sum = 0;
ifstream file ("file.txt");
for (string word; file >> word;)
++sum;
cout << sum << endl;
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
#include <set>
using namespace std;
int main()
{
set<string> unique_words;
ifstream file ("file.txt");
for (string word; file >> word;)
unique_words.insert(word);
for (auto& word: unique_words)
cout << word << endl;
return 0;
}