map
exampleThis program reads "words" from cin and prints how many times each occurs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
// map/wordfreq.cpp - Word frequencies using set and map. // Fred Swartz 2001-12-11, 2004-02-29 // // Words to ignore are read from a file and saved in a set<string>. // Words to count are read from cin and counted in a map<string, int>. #include <iostream> #include <fstream> #include <map> #include <set> #include <string> using namespace std; //========================================================= main int main() { set<string> ignore; // Words to ignore. map<string, int> freq; // Map of words and their frequencies string word; // Used to hold input word. //-- Read file of words to ignore. ifstream ignoreFile("ignore.txt"); while (ignoreFile >> word) { ignore.insert(word); } //-- Read words/tokens to count from input stream. while (cin >> word) { if (ignore.find(word) == ignore.end()) { freq[word]++; // Count this. It's not in ignore set. } } //-- Write count/word. Iterator returns key/value pair. map<string, int>::const_iterator iter; for (iter=freq.begin(); iter != freq.end(); ++iter) { cout << iter->second << " " << iter->first << endl; } system("PAUSE"); // keep console window open in DevC++. return 0; }//end main |