Kartor är associativa behållare som lagrar element på ett kartlagt sätt. Varje element har ett nyckelvärde och ett mappat värde. Inga två mappade värden kan ha samma nyckelvärden.
std::map är klassmallen för kartbehållare och den är definierad i rubrikfilen.
Grundläggande std::map Medlemsfunktioner
Några grundläggande funktioner associerade med std::map är:
- Börja() – Returnerar en iterator till det första elementet i kartan.
- slutet() – Returnerar en iterator till det teoretiska elementet som följer efter det sista elementet i kartan.
- storlek() – Returnerar antalet element i kartan.
- max_size() – Returnerar det maximala antalet element som kartan kan innehålla.
- tömma() – Returnerar om kartan är tom.
- par infoga (nyckelvärde, kartvärde) – Lägger till ett nytt element på kartan.
- radera (iteratorposition) – Tar bort elementet vid den position som iteratorn pekar på.
- radera(konst g) – Tar bort nyckel-värdet 'g' från kartan.
- klar() – Tar bort alla element från kartan.
Exempel på std::map
Följande exempel visar hur man utför grundläggande operationer på kartbehållare.
java-anslutning
Exempel 1: start() och end() Funktion
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>smp; // Infoga några värden i kartan mp['one'] = 1; mp['två'] = 2; mp['tre'] = 3; // Hämta en iterator som pekar på det första elementet i // map mapint>::iterator it = mp.begin(); // Iterera genom kartan och skriv ut elementen medan (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Produktion
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Komplexiteten hos ovanstående metod:
Tidskomplexitet: O(n) där n är storleken på kartan.
Hjälputrymme: På)
Exempel 2: size() funktion
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>Karta; // Infoga några värden i kartan['one'] = 1; map['två'] = 2; map['tre'] = 3; // Skriv ut storleken på kartan<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Produktion
Size of map: 3>
Komplexiteten hos ovanstående metod:
Tidskomplexitet: O(1).
Exempel 3: Implementeringskarta
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iterator itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
övervakad maskininlärning
>
>Produktion
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Komplexiteten hos ovanstående metod:
Tidskomplexitet: O(n log(n)) eftersom n är storleken på kartan
Extra utrymme: På)
Exempel 4: Implementering av karta över heltal
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>Karta; // Infoga några värden i kartan['one'] = 1; map['två'] = 2; map['tre'] = 3; // Skriv ut värdena i kartan<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
mvc java
>Produktion
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Lista över alla funktioner i std::map
Följande tabell innehåller alla funktioner definierade i std::map-klassen.
| Fungera | Definition |
|---|---|
| map::insert() | Infoga element med en viss nyckel i kartbehållaren –> O(log n) |
| map:: count() | Returnerar antalet matchningar till element med nyckel-värde 'g' i kartan. –> O(log n) |
| map equal_range() | Returnerar en iterator av par. Paret hänvisar till gränserna för ett intervall som inkluderar alla element i behållaren som har en nyckel som motsvarar k. |
| karta radera() | Används för att radera element från behållaren –> O(log n) |
| map rend() | Returnerar en omvänd iterator som pekar på det teoretiska elementet precis före det första nyckel-värdeparet i kartan (som anses vara dess omvända ände). |
| map rbegin()
| Returnerar en omvänd iterator som pekar på det sista elementet i kartan. |
| kartfynd() | Returnerar en iterator till elementet med nyckel-värdet 'g' i kartan om den hittas, annars returnerar iteratorn till slutet. |
| map crbegin() och crend() | crbegin() returnerar en konstant omvänd iterator som hänvisar till det sista elementet i kartbehållaren. crend() returnerar en konstant omvänd iterator som pekar på det teoretiska elementet före det första elementet i kartan. |
| mappa cbegin() och cend() | cbegin() returnerar en konstant iterator som hänvisar till det första elementet i kartbehållaren. cend() returnerar en konstant iterator som pekar på det teoretiska elementet som följer efter det sista elementet i multikartan. |
| map emplace() | Infogar nyckeln och dess element i kartbehållaren. |
| karta max_size() | Returnerar det maximala antalet element en kartbehållare kan innehålla –> O(1) |
| map upper_bound() | Returnerar en iterator till det första elementet som motsvarar det mappade värdet med nyckel-värdet 'g' eller kommer definitivt att gå efter elementet med nyckel-värdet 'g' i kartan bash while loop |
| kartoperatör= | Tilldelar innehållet i en behållare till en annan behållare och ersätter dess nuvarande innehåll. |
| map lower_bound() | Returnerar en iterator till det första elementet som är ekvivalent med det mappade värdet med nyckel-värde 'g' eller definitivt inte kommer att gå före elementet med nyckel-värde 'g' i kartan -> O(log n) |
| map emplace_hint() | Infogar nyckeln och dess element i kartbehållaren med en given ledtråd. |
| map value_comp() | Returnerar objektet som bestämmer hur elementen i kartan är ordnade ('<' som standard). |
| map key_comp() | Returnerar objektet som bestämmer hur elementen i kartan är ordnade ('<' som standard). |
| map::size() | Returnerar antalet element i kartan. |
| map::empty() | Returnerar om kartan är tom |
| map::begin() och end() | begin() returnerar en iterator till det första elementet i kartan. end() returnerar en iterator till det teoretiska elementet som följer efter det sista elementet i kartan |
| map::operatör[] | Denna operatör används för att referera till elementet som finns på den position som anges inuti operatören. |
| map::clear() | Tar bort alla element från kartan. |
| map::at() och map::swap() | at()-funktionen används för att returnera referensen till elementet som är associerat med nyckeln k. swap()-funktionen används för att utbyta innehållet i två kartor, men kartorna måste vara av samma typ, även om storlekarna kan skilja sig åt. |