Pure Programmer
Blue Matrix


Cluster Map

Maps (aka Associative Arrays)

L1

This page is under construction. Please come back later.

Maps1.cpp
#include "Utils.hpp"
#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

int main(int argc, char **argv) {
	unordered_map<string, string> dictionary = {};

	cout << "dictionary size: " << dictionary.size() << endl;
	cout << "dictionary is " << (dictionary.empty() ? "empty" : "not empty") << endl;
	dictionary["apple"] = "red";
	dictionary["banana"] = "yellow";
	dictionary["cantaloupe"] = "orange";
	dictionary["dragonfruit"] = "red";
	dictionary["elderberry"] = "purple";

	cout << "dictionary size: " << dictionary.size() << endl;
	cout << "dictionary is " << (dictionary.empty() ? "empty" : "not empty") << endl;

	cout << "bananas are " << dictionary.at("banana") << endl;

	string x = "dragonfruit";
	if (dictionary.count(x)) {
		cout << x << " are " << dictionary.at(x) << endl;
	} else {
		cout << "Can't find " << x << endl;
	}

	x = "fig";
	if (dictionary.count(x)) {
		cout << x << " are " << dictionary.at(x) << endl;
	} else {
		cout << "Can't find " << x << endl;
	}

	x = "elderberry";
	dictionary.erase(x);
	if (dictionary.count(x)) {
		cout << x << " are " << dictionary.at(x) << endl;
	} else {
		cout << "Can't find " << x << endl;
	}

	cout << Utils::to_string(dictionary) << endl;
	return 0;
}

Output
$ g++ -std=c++17 Maps1.cpp -o Maps1 -lfmt $ ./Maps1 dictionary size: 0 dictionary is empty dictionary size: 5 dictionary is not empty bananas are yellow dragonfruit are red Can't find fig Can't find elderberry {"dragonfruit" => "red", "cantaloupe" => "orange", "banana" => "yellow", "apple" => "red"}
Maps2.cpp
#include "Utils.hpp"
#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

int main(int argc, char **argv) {
	unordered_map<string, int> planetDiameters = {
		{"Mercury", 4879},
		{"Venus", 12103},
		{"Earth", 12756},
		{"Mars", 6794},
		{"Jupiter", 142985},
		{"Saturn", 120534},
		{"Uranus", 51115},
		{"Neptune", 49534},
		{"Pluto", 2374},
		{"Ceres", 946},
		{"Eris", 2326},
		{"Makemake", 1430}
	};

	for (auto planet : Utils::keys(planetDiameters)) {
		cout << planet << " has a diameter of " << planetDiameters.at(planet) << " km" << endl;
	}
	return 0;
}

Output
$ g++ -std=c++17 Maps2.cpp -o Maps2 -lfmt $ ./Maps2 Ceres has a diameter of 946 km Earth has a diameter of 12756 km Eris has a diameter of 2326 km Jupiter has a diameter of 142985 km Makemake has a diameter of 1430 km Mars has a diameter of 6794 km Mercury has a diameter of 4879 km Neptune has a diameter of 49534 km Pluto has a diameter of 2374 km Saturn has a diameter of 120534 km Uranus has a diameter of 51115 km Venus has a diameter of 12103 km
cpp

Questions

Projects

More ★'s indicate higher difficulty level.

References