/*
* Copyright ©2026 Soham Pardeshi. All rights reserved.
* Permission is hereby granted to students registered for University of
* Washington CSE 333 for use solely during Summer Quarter 2026 for
* purposes of the course. No other use, copying, distribution, or
* modification is permitted without prior written consent. Copyrights
* for third-party components of this work must be honored. Instructors
* interested in reusing these course materials should contact the author.
*/
#include <iostream>
#include <map>
#include <string>
#include <vector>
using std::cout;
using std::endl;
// STL Example #2 (slide 64): count word frequencies with a map. freq[w]++
// works because operator[] inserts a value-initialized 0 the first time it
// sees a key. The map keeps its entries sorted by key.
int main(int argc, char** argv) {
std::vector<std::string> words = {"red", "blue", "red", "green", "blue",
"red"};
std::map<std::string, int> freq;
for (const std::string& w : words) {
freq[w]++; // [] inserts 0 the first time, then we increment
}
cout << "frequencies (sorted by key):" << endl;
for (const auto& entry : freq) {
cout << " " << entry.first << ": " << entry.second << endl;
}
return EXIT_SUCCESS;
}