РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
261 of 815 menu

Метод insert

Метод insert класса map используется для добавления новых пар ключ-значение в контейнер. Если ключ уже существует в контейнере, вставка не происходит (для map, в отличие от multimap). В первый параметр мы передаем пару value_type или объект pair, содержащий ключ и значение, а во второй (опционально) - подсказку итератора для оптимизации вставки. Метод возвращает пару, состоящую из итератора на вставленный (или существующий) элемент и булева значения, указывающего, была ли вставка успешной.

Синтаксис

// Вставка одной пары pair<iterator, bool> insert(const value_type& value); // Вставка с подсказкой iterator insert(iterator hint, const value_type& value); // Вставка диапазона template<class InputIt> void insert(InputIt first, InputIt last);

Пример

Давайте создадим map и добавим в него несколько элементов с помощью метода insert:

#include <iostream> #include <map> #include <string> using namespace std; int main() { map<int, string> mp; mp.insert({1, "abcde"}); mp.insert({2, "12345"}); mp.insert({3, "hello"}); for (const auto& [key, value] : mp) { cout << key << ": " << value << endl; } return 0; }

Результат выполнения кода:

"1: abcde" "2: 12345" "3: hello"

Пример

Давайте проверим, что произойдет, если попытаться вставить элемент с уже существующим ключом:

#include <iostream> #include <map> #include <string> using namespace std; int main() { map<int, string> mp; auto res = mp.insert({1, "abcde"}); cout << "First insert: " << res.second << endl; res = mp.insert({1, "12345"}); cout << "Second insert: " << res.second << endl; cout << "Value: " << res.first->second << endl; return 0; }

Результат выполнения кода:

"First insert: 1" "Second insert: 0" "Value: abcde"

Пример

Давайте вставим диапазон элементов из другого контейнера:

#include <iostream> #include <map> #include <string> using namespace std; int main() { map<int, string> src = {{1, "abcde"}, {2, "12345"}}; map<int, string> dst; dst.insert(src.begin(), src.end()); dst.insert({3, "hello"}); for (const auto& [key, value] : dst) { cout << key << ": " << value << endl; } return 0; }

Результат выполнения кода:

"1: abcde" "2: 12345" "3: hello"

Смотрите также

  • метод emplace,
    который вставляет элемент на месте
  • метод insert_or_assign,
    который вставляет или обновляет элемент
  • метод erase,
    который удаляет элементы из map
  • метод find,
    который ищет элемент по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить