Рубрики

Карта в C ++ Стандартная библиотека шаблонов (STL)

Карты — это ассоциативные контейнеры, которые хранят элементы в отображенном виде. Каждый элемент имеет значение ключа и сопоставленное значение. Два сопоставленных значения не могут иметь одинаковые значения ключей.

Некоторые основные функции, связанные с картой:
begin () — возвращает итератор к первому элементу на карте
end () — возвращает итератор к теоретическому элементу, который следует за последним элементом на карте
size () — возвращает количество элементов на карте
max_size () — возвращает максимальное количество элементов, которые может содержать карта
empty () — Возвращает, является ли карта пустой
пара вставки (keyvalue, mapvalue) — добавляет новый элемент на карту
erase (позиция итератора) — удаляет элемент в позиции, указанной итератором.
erase (const g) — удаляет значение ключа 'g' с карты
clear () — удаляет все элементы с карты

#include <iostream>
#include <iterator>
#include <map>

  

using namespace std;

  

int main()

{

  

    // пустой контейнер карты

    map<int, int> gquiz1;

  

    // вставляем элементы в случайном порядке

    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));

    gquiz1.insert(pair<int, int>(7, 10));

  

    // печать карты gquiz1

    map<int, int>::iterator itr;

    cout << "\nThe map gquiz1 is : \n";

    cout << "\tKEY\tELEMENT\n";

    for (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {

        cout << '\t' << itr->first

             << '\t' << itr->second << '\n';

    }

    cout << endl;

  

    // присваиваем элементы из gquiz1 в gquiz2

    map<int, int> gquiz2(gquiz1.begin(), gquiz1.end());

  

    // печатаем все элементы карты gquiz2

    cout << "\nThe map gquiz2 after"

         << " assign from gquiz1 is : \n";

    cout << "\tKEY\tELEMENT\n";

    for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) {

        cout << '\t' << itr->first

             << '\t' << itr->second << '\n';

    }

    cout << endl;

  

    // удаляем все элементы до

    // элемент с ключом = 3 в gquiz2

    cout << "\ngquiz2 after removal of"

            " elements less than key=3 : \n";

    cout << "\tKEY\tELEMENT\n";

    gquiz2.erase(gquiz2.begin(), gquiz2.find(3));

    for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) {

        cout << '\t' << itr->first

             << '\t' << itr->second << '\n';

    }

  

    // удаляем все элементы с ключом = 4

    int num;

    num = gquiz2.erase(4);

    cout << "\ngquiz2.erase(4) : ";

    cout << num << " removed \n";

    cout << "\tKEY\tELEMENT\n";

    for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) {

        cout << '\t' << itr->first

             << '\t' << itr->second << '\n';

    }

  

    cout << endl;

  

    // нижняя граница и верхняя граница для карты gquiz1 key = 5

    cout << "gquiz1.lower_bound(5) : "

         << "\tKEY = ";

    cout << gquiz1.lower_bound(5)->first << '\t';

    cout << "\tELEMENT = "

         << gquiz1.lower_bound(5)->second << endl;

    cout << "gquiz1.upper_bound(5) : "

         << "\tKEY = ";

    cout << gquiz1.upper_bound(5)->first << '\t';

    cout << "\tELEMENT = "

         << gquiz1.upper_bound(5)->second << endl;

  

    return 0;

}

Выход:

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 removal of elements less than key=3 : 
    KEY    ELEMENT
    3    60
    4    20
    5    50
    6    50
    7    10

gquiz2.erase(4) : 1 removed 
    KEY    ELEMENT
    3    60
    5    50
    6    50
    7    10

gquiz1.lower_bound(5) :     KEY = 5        ELEMENT = 50
gquiz1.upper_bound(5) :     KEY = 6        ELEMENT = 50

Список всех функций карты:

  • map insert () в C ++ STL — вставка элементов с определенным ключом в контейнер карты. ,
  • Функция map count () в C ++ STL — возвращает количество совпадений с элементом со значением ключа «g» на карте.
  • map equal_range () в C ++ STL — возвращает итератор пар. Пара относится к границам диапазона, который включает все элементы в контейнере, которые имеют ключ, эквивалентный k.
  • Функция map erase () в C ++ STL — используется для удаления элемента из контейнера.
  • Функция map rend () в C ++ STL — возвращает обратный итератор, указывающий на теоретический элемент непосредственно перед первой парой ключ-значение в карте (которая считается его обратной стороной).
  • Функция map rbegin () в C ++ STL — возвращает обратный итератор, который указывает на последний элемент карты.
  • Функция map find () в C ++ STL — возвращает итератор для элемента со значением ключа 'g' на карте, если он найден, иначе возвращает итератор до конца.
  • Функции map crbegin () и crend () в C ++ STLcrbegin () возвращает постоянный обратный итератор, ссылающийся на последний элемент в контейнере карты. crend () возвращает постоянный обратный итератор, указывающий на теоретический элемент перед первым элементом на карте.
  • Функции map cbegin () и cend () в C ++ STLcbegin () возвращает постоянный итератор, ссылающийся на первый элемент в контейнере карты. cend () возвращает постоянный итератор, указывающий на теоретический элемент, который следует за последним элементом в мультикарте.
  • map emplace () в C ++ STL — вставляет ключ и его элемент в контейнер карты.
  • map max_size () в C ++ STL — возвращает максимальное количество элементов, которое может содержать контейнер карты.
  • map upper_bound () функция в C ++ STL — возвращает итератор к первому элементу, который эквивалентен отображенному значению со значением ключа 'g' или определенно будет идти после элемента со значением ключа 'g' на карте
  • оператор map = в C ++ STL — назначает содержимое контейнера другому контейнеру, заменяя его текущее содержимое.
  • Функция map lower_bound () в C ++ STL — возвращает итератор для первого элемента, который эквивалентен отображенному значению со значением ключа «g» или определенно не будет идти перед элементом со значением ключа «g» на карте.
  • Функция map emplace_hint () в C ++ STL — Вставляет ключ и его элемент в контейнер карты с заданной подсказкой.
  • map value_comp () в C ++ STL — возвращает объект, который определяет порядок элементов на карте (по умолчанию «<»).
  • Функция map key_comp () в C ++ STL — возвращает объект, который определяет порядок элементов на карте (по умолчанию '<').
  • map :: size () в C ++ STL — возвращает количество элементов на карте.
  • map :: empty () в C ++ STL — Возвращает, является ли карта пустой.
  • map :: begin () и end () в C ++ STLbegin () возвращает итератор для первого элемента на карте. end () возвращает итератор к теоретическому элементу, который следует за последним элементом на карте
  • map :: operator [] в C ++ STL — этот оператор используется для ссылки на элемент, присутствующий в позиции, указанной внутри оператора.
  • map :: clear () в C ++ STL — удаляет все элементы с карты.
  • map :: at () и map :: swap () в C ++ Функция STLat () используется для возврата ссылки на элемент, связанный с ключом k. Функция swap () используется для обмена содержимым двух карт, но карты должны быть одного типа, хотя их размеры могут отличаться.

Последние статьи на карте

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Карта в C ++ Стандартная библиотека шаблонов (STL)

0.00 (0%) 0 votes