logo

Karta i C++ Standard Template Library (STL)

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 gquiz2(gquiz1.begin(), gquiz1.end()); // skriv ut alla delar av kartan gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

ö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.