Los mapas son contenedores asociativos que almacenan elementos en forma de mapa. Cada elemento tiene un valor clave y un valor asignado . Dos valores asignados no pueden tener los mismos valores clave.
Los conjuntos son un tipo de contenedor asociativo en el que cada elemento tiene que ser único porque el valor del elemento lo identifica. El valor del elemento no se puede modificar una vez que se agrega al conjunto, aunque es posible eliminar y agregar el valor modificado de ese elemento.
Mapa de conjuntos en STL: un mapa de conjuntos puede ser muy útil para diseñar estructuras de datos y algoritmos complejos .
Sintaxis:
map<datatype, set<datatype>> map_of_set : almacena un conjunto de números correspondientes a un número
o
map<set<tipo de datos>, tipo de datos> map_of_set: almacena un número correspondiente a un conjunto de números
Veamos cómo implementar Maps of Sets en C++:
C++
// C++ program to demonstrate use of map of set #include <bits/stdc++.h> using namespace std; void show(map<int, set<string> >& mapOfSet) { // Using iterator to access // key, value pairs present // inside the mapOfSet for (auto it = mapOfSet.begin(); it != mapOfSet.end(); it++) { // Key is integer cout << it->first << " => "; // Value is a set of string set<string> st = it->second; // Strings will be printed // in sorted order as set // maintains the order for (auto it = st.begin(); it != st.end(); it++) { cout << (*it) << ' '; } cout << '\n'; } } // Driver code int main() { // Declaring a map whose key // is of integer type and // value is a set of string map<int, set<string> > mapOfSet; // Inserting values in the // set mapped with key 1 mapOfSet[1].insert("Geeks"); mapOfSet[1].insert("For"); // Set stores unique or // distinct elements only mapOfSet[1].insert("Geeks"); // Inserting values in the // set mapped with key 2 mapOfSet[2].insert("Is"); mapOfSet[2].insert("The"); // Inserting values in the // set mapped with key 3 mapOfSet[3].insert("Great"); mapOfSet[3].insert("Learning"); // Inserting values in the // set mapped with key 4 mapOfSet[4].insert("Platform"); show(mapOfSet); return 0; }
1 => For Geeks 2 => Is The 3 => Great Learning 4 => Platform