Метод erase() для карт C++ STL

C++Beginner
Практиковаться сейчас

Введение

В этом практическом занятии мы узнаем о методе erase() в контейнере map C++ STL для удаления диапазона элементов в map на языке программирования C++.

Создайте и заполните карту парами ключ-значение целых чисел

Создайте новый файл на C++ в директории ~/project с именем main.cpp с помощью команды touch ~/project/main.cpp и откройте его с помощью предпочитаемого текстового редактора.

В этом шаге мы создадим map и заполним его парами ключ-значение целых чисел с использованием метода insert(). Функция make_pair() используется для вставки пары ключ-значение в map. Ключи автоматически сортируются в порядке возрастания ключей.

#include <iostream>
#include <map>

using namespace std;

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate the working of erase() method in a Map (Part 2), in CPP  ===== \n\n\n";

    map<int, int> m;
    m.insert(make_pair(3, 30));
    m.insert(make_pair(2, 20));
    m.insert(make_pair(5, 50));
    m.insert(make_pair(9, 90));
    m.insert(make_pair(1, 10));
}

Удалите элементы карты с ключами, меньшими определенного значения

В этом шаге мы удалим элементы в map с ключами, меньшими определенного значения, с использованием метода erase(). В этом примере мы удаляем все элементы с ключами, меньшими 3. erase(m.begin(), m.find(3)) удаляет все элементы с начала map до позиции итератора, указывающего на элемент с ключом 3.

#include <iostream>
#include <map>

using namespace std;

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " =====  Program to demonstrate the working of erase() method in a Map (Part 2), in CPP  ===== \n\n\n";

    map<int, int> m;
    m.insert(make_pair(3, 30));
    m.insert(make_pair(2, 20));
    m.insert(make_pair(5, 50));
    m.insert(make_pair(9, 90));
    m.insert(make_pair(1, 10));

    cout << "Map elements before deletion:  " << endl;
    for (auto i : m)
    {
        cout << "( " << i.first << ", " << i.second << " ) ";
    }

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

    cout << "\n\nMap elements after deletion:  " << endl;
    for (auto i : m)
    {
        cout << "( " << i.first << ", " << i.second << " ) ";
    }
    cout << "\n\n\n";
    return 0;
}

Компилируйте и запустите код

Для запуска вышеприведенного кода на C++ необходимо скомпилировать и выполнить его с использованием следующих команд в терминале:

g++ ~/project/main.cpp -o ~/project/main && ~/project/./main

Понять вывод

После успешной компиляции и выполнения вышеприведенного кода вывод будет таким:

Welcome to LabEx :-)


 =====  Program to demonstrate the working of erase() method in a Map (Part 2), in CPP  =====


Map elements before deletion:
( 1, 10 ) ( 2, 20 ) ( 3, 30 ) ( 5, 50 ) ( 9, 90 )

Map elements after deletion:
( 3, 30 ) ( 5, 50 ) ( 9, 90 )

Резюме

В этом практическом занятии мы изучили метод erase() в контейнере Map C++ STL для удаления диапазона элементов в Map на языке программирования C++. Мы также узнали, как создавать Map и заполнять его парами ключ-значение с использованием метода insert(). Наконец, мы увидели, как удалять элементы из Map с использованием erase().