Како поновити мапу у Ц ++

How Iterate Over Map C



У овом кратком водичу ћемо видети како се понављати по мапи у Ц ++.

Постоји више начина за понављање карте у Ц ++. Са новијим верзијама Ц ++, постоје напреднији начини за понављање карте у Ц ++.







Прођимо сваки по један.



Коришћење фор лооп са стп :: мап

Направили смо мапу под именом | _+_ | и у њега убацили парове кључ-вредност.



<за>
#инцлуде
#инцлуде
#инцлуде
#инцлуде
#инцлуде
Користећи именски просторсати;
интглавни() {
// Иницијализација мапе
Мапа>'Индија','Делхи'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Непал','Катманду'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>(„Кина“,'Пекинг'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Француска','Париз'));

// Итерација помоћу итератора у фор петљи
за (аутоитр=цоунтриЦапиталМап.започети();итр!=цоунтриЦапиталМап.крај();итр++)
{
сати::цена <<итр->први// Тастери
<< ':'
<<итр->друго// Приступна вредност
<<сати::ендл;
}
повратак 0;
}
</за>
Оутпут:
<за>
Кина:Пекинг
Француска:Парис
Индија:Делхи
Непал:Катманду
</за>

Као што видите, штампали смо цоунтри: цапитал (кеи: валуе) користећи фор лооп.





Ако приметите, користили смо | _+_ | спецификатор типа за итератор карте због читљивости. Можете користити | _+_ | изричито такође.
Белешка: Ако видите излаз, сортиран је по кључевима у растућем редоследу. То је зато што је стд :: мап сортирани асоцијативни контејнер са приложеним компаратором (верзија Ц ++ 11 па надаље). Пошто нисмо обезбедили никакво поређење, па је Ц ++ користио подразумевани упоредник за низ.

Коришћење вхиле петље са стп :: мап

Такође можемо користити вхиле петљу уместо фор петље.



<за>
#инцлуде
#инцлуде
#инцлуде
#инцлуде>
Користећи именски просторсати;
интглавни() {
// Иницијализација мапе
Мапа<стринг, стринг>цоунтриЦапиталМап;
// Уметање различитих елемената у мапу
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Индија','Делхи'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Непал','Катманду'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>(„Кина“,'Пекинг'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Француска','Париз'));


// Креирање итератора за мапу и Иницијализација са почетком
аутоитр=цоунтриЦапиталМап.започети();
// Итерација помоћу итератора у вхиле петљи
док (итр!=цоунтриЦапиталМап.крај())
{
сати::цена <<итр->први// Тастери
<< ':'
<<итр->друго// Приступна вредност
<<сати::ендл;
итр++;
}
повратак 0;
}
</за>
Оутпут:
<за>
Кина:Пекинг
Француска:Парис
Индија:Делхи
Непал:Катманду
</за>

Коришћење опсега заснованог на петљи (верзија од Ц ++ 11 надаље)

Ако користите верзију Ц ++ 11, ово је најелегантнији начин за понављање карте у Ц ++. Можете избећи традиционалне ситне петље и уместо тога користити ово.

<за>
#инцлуде
#инцлуде
#инцлуде

Користећи именски просторсати;
интглавни() {
// Иницијализација мапе
Мапа<стринг, стринг>цоунтриЦапиталМап;
// Уметање различитих елемената у мапу
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Индија','Делхи'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Непал','Катманду'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>(„Кина“,'Пекинг'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Француска','Париз'));


// Итерација помоћу итератора у фор петљи
за (цонст ауто &он:цоунтриЦапиталМап) {
цена <<он.први << ':' <<он.друго<<' н';
}

повратак 0;
}
</за>
Оутпут:
Кина:Пекинг
Француска:Парис
Индија:Делхи
Непал:Катманду

Коришћење опсега за петљу са паровима кључ-вредност (верзија од Ц ++ 17 надаље)

Ова верзија је подржана од ц ++ 17 надаље и пружа флексибилнији начин за понављање по мапи. Можете изричито приступити пару кључ-вредност у мапи што пружа још читљивије решење.

<за>
#инцлуде
#инцлуде
#инцлуде

Користећи именски просторсати;
интглавни() {
// Иницијализација мапе
Мапа<стринг, стринг>цоунтриЦапиталМап;
// Уметање различитих елемената у мапу
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Индија','Делхи'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Непал','Катманду'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>(„Кина“,'Пекинг'));
цоунтриЦапиталМап.уметнути(пар<стринг, стринг>('Француска','Париз'));


// Итерација помоћу итератора у фор петљи
за (цонст ауто& [кључ, вредност] :цоунтриЦапиталМап) {
цена <<кључ<< ':' <<вредност<< ' н';
}

повратак 0;
}
</за>
Оутпут:
Кина:Пекинг
Француска:Парис
Индија:Делхи
Непал:Катманду

То је све о томе како поновити мапу у Ц ++. Срећно кодирање!