logo

C++ функция за карта

Картите са част от C++ STL (Standard Template Library). Картите са асоциативните контейнери, които съхраняват сортирана двойка ключ-стойност, в която всеки ключ е уникален и може да се вмъква или изтрива, но не може да се променя. Стойностите, свързани с ключовете, могат да се променят.

Например: Карта на служителите, където идентификаторът на служител е ключът, а името е стойността, може да бъде представена като:

Ключове Стойности
101 Никита
102 Робин
103 Дълбок
104 Джон

Синтаксис

 template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator&lt;pair"> // map::allocator_type &gt; class map; </class>

Параметър

ключ: Ключовият тип данни, който да се съхранява в картата.

Тип: Типът данни на стойността, която да се съхранява в картата.

сравни: Клас за сравнение, който приема два аргумента от един и същи тип bool и връща стойност. Този аргумент не е задължителен и двоичният предикат по-малко е стойността по подразбиране.

разпределяне: Тип на обекта за разпределение. Този аргумент не е задължителен и стойността по подразбиране е разпределител.

низ в int

Създаване на карта

Картите могат лесно да бъдат създадени с помощта на следния оператор:

 typedef pair value_type; 

Горният формуляр ще се използва за създаване на карта с ключ от тип Тип ключ и стойност на типа тип стойност. Едно важно нещо е, че ключът на картата и съответните стойности винаги се вмъкват като двойка, не можете да вмъкнете само ключ или само стойност в карта.

Пример 1

 #include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } } 

Изход:

 Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita 

Членски функции

По-долу е списъкът на всички членски функции на map:

Строител/Разрушител

Функции Описание
конструктори Конструирайте карта
разрушители Деструктор на карти
оператор= Копирайте елементи от картата на друга карта.

Итератори

Функции Описание
започвам Връща итератор, сочещ към първия елемент в картата.
cbegin Връща константен итератор, сочещ към първия елемент в картата.
край Връща итератор, сочещ към последния край.
няколко Връща постоянен итератор, сочещ към последния край.
rbegin Връща обратен итератор, сочещ към края.
прави Връща обратен итератор, сочещ към началото.
crbegin Връща постоянен обратен итератор, сочещ към края.
вярвам Връща постоянен обратен итератор, сочещ към началото.

Капацитет

Функции Описание
празен Връща true, ако картата е празна.
размер Връща броя на елементите в картата.
максимален_размер Връща максималния размер на картата.

Достъп до елемент

Функции Описание
оператор[] Извлечете елемента с даден ключ.
при Извлечете елемента с даден ключ.

Модификатори

Функции Описание
вмъкнете Вмъкване на елемент в картата.
изтрива Изтрийте елементи от картата.
размяна Обменете съдържанието на картата.
ясно Изтрийте всички елементи на картата.
местоположение Конструирайте и вмъкнете новите елементи в картата.
emplace_hint Конструирайте и вмъкнете нови елементи в картата чрез подсказка.

Наблюдатели

Функции Описание
key_comp Върнете копие на обект за сравнение на ключове.
стойност_комп Връща копие на обект за сравнение на стойности.

Операции

Функции Описание
намирам Търсене на елемент с даден ключ.
броя Получава броя на елементите, съответстващи на даден ключ.
долна_граница Връща итератор към долната граница.
Горна граница Връща итератор към горната граница.
равен_обхват Връща диапазона от елементи, съвпадащи с даден ключ.

Разпределител

Функции Описание
get_allocator Връща обект за разпределение, който се използва за конструиране на картата.

Претоварени функции, които не са членове

Функции Описание
оператор== Проверява дали двете карти са равни или не.
оператор!= Проверява дали двете карти са равни или не.
оператор< Проверява дали първата карта е по-малка от друга или не.
оператор<=< td> Проверява дали първата карта е по-малка или равна на друга или не.
оператор> Проверява дали първата карта е по-голяма от останалите или не.
оператор>= Проверява дали първата карта е по-голяма от равна на друга или не.
размяна() Разменя елемента на две карти.