#include <map>
#include <iostream>
#include <vector>
#include <string>

int main()
{
    //create a map
    std::map<std::string, unsigned int> mySuperCoolMap {
	    {"Edward", 39},
	    {"Daniel", 35},
	    {"Carlos", 67},
	    {"Bobby",  8},
	    {"Alfred", 23}
    };

    std::cout << "\n\n";

    //Ranged based for loop to display the names and age
    for (const auto &itr : mySuperCoolMap)
    {
        std::cout << itr.first << " is: " << itr.second << " years old.\n";
    }

    //create another map
    std::map<std::string, unsigned int> myOtherSuperCoolMap {
	    {"Espana",  395},
	    {"Dominic", 1000},
	    {"Chalas",  167},
	    {"Brian",  238},
	    {"Angela", 2300}
    };

    //Display the names and age
    for (const auto &itr : myOtherSuperCoolMap)
    {
        std::cout << itr.first << " is: " << itr.second << " years old.\n";
    }

    //create a vector of maps
    std::vector<std::map<std::string, unsigned int>> myVectorOfMaps {
    	mySuperCoolMap, myOtherSuperCoolMap
    };

    std::cout << "\n\n";

    //Display the values in the vector
	for (const auto &vecitr : myVectorOfMaps)
	{
	    for (const auto &mapitr : vecitr)
	    {
	        std::cout << mapitr.first << " is: " << mapitr.second << " years old.\n";
	    }
	}
    return 0;
}