C ++

Як переглядати карту в C ++

Як переглядати карту в C ++
У цьому короткому посібнику ми побачимо, як здійснити ітерацію на карті в C++.

Існує кілька способів перегляду карти в C++. У новіших версіях C ++ існують більш просунуті способи перегляду карти в C++.

Давайте пройдемося по кожному.

Використання циклу for зі stp :: map

Ми створили карту з назвою countryCapitalMap і вставив в неї пари ключ-значення.


#включати
#включати
#включати
#включати
#включати
використання простору імен std;
int main ()
// Ініціалізація карти
карта> "Індія", "Делі"));
countryCapitalMap.вставка (пара("Непал", "Катманду"));
countryCapitalMap.вставка (пара("Китай", "Пекін"));
countryCapitalMap.вставка (пара("Франція", "Париж"));
// Ітерація за допомогою ітератора в циклі for
для (auto itr = countryCapitalMap.begin (); ітр != countryCapitalMap.кінець (); itr ++)

std :: cout << itr->first // ключ доступу
<< ':'
<< itr->секунда // значення доступу
<< std::endl;

повернути 0;


Вихід:

Китай: Пекін
Франція: Париж
Індія: Делі
Непал: Катманду

Як бачите, ми надрукували country: capital (ключ: значення), використовуючи для циклу for.

Якщо ви помітили, ми використали авто специфікатор типу для ітератора карти через читабельність. Можна використовувати карта:: ітератор явно також.
Примітка: Якщо ви бачите результат, він сортується за клавішами у порядку зростання. Це тому, що std :: map - це відсортований асоціативний контейнер із поставленим компаратором (версія C ++ 11 і далі). Оскільки ми не надали жодного порівняльника, тому C ++ використовував порівняльник за замовчуванням для рядка.

Використання циклу while зі stp :: map

Ми також можемо використовувати цикл while замість циклу for.


#включати
#включати
#включати
#включати >
використання простору імен std;
int main ()
// Ініціалізація карти
карта countryCapitalMap;
// Вставлення різних елементів на карту
countryCapitalMap.вставка (пара("Індія", "Делі"));
countryCapitalMap.вставка (пара("Непал", "Катманду"));
countryCapitalMap.вставка (пара("Китай", "Пекін"));
countryCapitalMap.вставка (пара("Франція", "Париж"));
// Створення ітератора для карти та ініціалізація з begin
auto itr = countryCapitalMap.begin ();
// Ітерація за допомогою ітератора в циклі while
в той час (іт!= countryCapitalMap.кінець ())

std :: cout << itr->first // ключ доступу
<< ':'
<< itr->секунда // значення доступу
<< std::endl;
itr ++;

повернути 0;


Вихід:

Китай: Пекін
Франція: Париж
Індія: Делі
Непал: Катманду

Використання діапазону на основі циклу (версія C ++ 11 і далі)

Якщо ви використовуєте версію C ++ 11, то це найелегантніший спосіб ітерації по карті в C++. Ви можете уникнути традиційних кубічних петель і використовувати їх замість цього.


#включати
#включати
#включати
використання простору імен std;
int main ()
// Ініціалізація карти
карта countryCapitalMap;
// Вставляємо різні елементи в карту
countryCapitalMap.вставка (пара("Індія", "Делі"));
countryCapitalMap.вставка (пара("Непал", "Катманду"));
countryCapitalMap.вставка (пара("Китай", "Пекін"));
countryCapitalMap.вставка (пара("Франція", "Париж"));
// Ітерація за допомогою ітератора в циклі for
для (const auto & ele: countryCapitalMap)
кут <
повернути 0;


Вихід:
Китай: Пекін
Франція: Париж
Індія: Делі
Непал: Катманду

Використання циклу на основі діапазону з парами ключ-значення (версія C ++ 17 і далі)

Ця версія підтримується від c ++ 17 і надає більш гнучкий спосіб ітерації по карті. Ви можете явно отримати доступ до пари ключ-значення на карті, що забезпечує ще більш читабельне рішення.


#включати
#включати
#включати
використання простору імен std;
int main ()
// Ініціалізація карти
карта countryCapitalMap;
// Вставлення різних елементів на карту
countryCapitalMap.вставка (пара("Індія", "Делі"));
countryCapitalMap.вставка (пара("Непал", "Катманду"));
countryCapitalMap.вставка (пара("Китай", "Пекін"));
countryCapitalMap.вставка (пара("Франція", "Париж"));
// Ітерація за допомогою ітератора в циклі for
для (const auto & [ключ, значення]: countryCapitalMap)
кут << key << ":" << value << "\n";

повернути 0;


Вихід:
Китай: Пекін
Франція: Париж
Індія: Делі
Непал: Катманду

Це все про те, як переглядати карту в C++. Щасливого кодування!

Кращі емулятори ігрової консолі для Linux
У цій статті буде перелічено популярне програмне забезпечення для емуляції ігрової консолі, доступне для Linux. Емуляція - це рівень сумісності програ...
Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Як зафіксувати та транслювати ігровий сеанс на Linux
Раніше грати в ігри вважалося лише хобі, але з часом ігрова індустрія спостерігала величезний ріст з точки зору технологій та кількості гравців. Аудит...