C++ std::map幾種遍歷方式(正序倒序)
1、map 的定義方式
//默認(rèn)定義格式(默認(rèn)按key升序存儲): key, value,其中key可以是任意類型 std::map<std::uint32_t, std::string> myMap; //key 值為 std::uint32_t 類型 std::map<std::string, std::string> myMap; //key 值為 std::string 類型 //指定數(shù)據(jù)按key升序存儲 std::map<std::uint32_t, std::string, std::greater<std::uint32_t> > myMap; //指定數(shù)據(jù)按key升序存儲 std::map<std::uint32_t, std::string, std::less<std::uint32_t> > myMap;
2、正序遍歷 map
注意:正序使用的是 std::map<std::uint32_t, std::string>::iterator, 倒序使用的是:std::map<std::uint32_t, std::string>::reverse_iterator。
2.1 使用 for 循環(huán)
#include <iostream>
#include <map>
int main()
{
std::map<std::uint32_t, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 使用迭代器倒序遍歷map
std::map<std::uint32_t, std::string>::iterator iter;
for (iter = myMap.begin(); iter != myMap.end(); ++iter)
{
std::cout << iter->first << " => " << iter->second << '\n';
}
return 0;
}2.2 使用 while 循環(huán)
#include <iostream>
#include <map>
int main()
{
std::map<std::uint32_t, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
std::map<std::uint32_t, std::string>::iterator iter = myMap.begin();
// 使用迭代器倒序遍歷map
while (iter != myMap.end())
{
std::cout << iter->first << " => " << iter->second << '\n';
++it;
}
return 0;
}3、倒序遍歷 map
注意:正序使用的是 std::map<std::uint32_t, std::string>::iterator, 倒序使用的是:std::map<std::uint32_t, std::string>::reverse_iterator。
3.1 使用 for 循環(huán)
#include <iostream>
#include <map>
int main()
{
std::map<std::uint32_t, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 使用迭代器倒序遍歷map
std::map<std::uint32_t, std::string>::reverse_iterator iter;
for (iter = myMap.rbegin(); iter != myMap.rend(); ++iter)
{
std::cout << iter->first << " => " << iter->second << '\n';
}
return 0;
}3.2 使用 while 循環(huán)
#include <iostream>
#include <map>
int main()
{
std::map<std::uint32_t, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
std::map<std::uint32_t, std::string>::reverse_iterator iter = myMap.rbegin();
// 使用迭代器倒序遍歷map
while (iter != myMap.rend())
{
std::cout << iter->first << " => " << iter->second << '\n';
++it;
}
return 0;
}4、使用 std::greater 屬性,直接定義倒序存儲的 map
注意:正序使用的是 std::map<std::uint32_t, std::string>::iterator, 倒序使用的是:std::map<std::uint32_t, std::string>::reverse_iterator。
4.1 使用 for 循環(huán)
#include <iostream>
#include <map>
int main()
{
std::map<std::uint32_t, std::string, std::greater<std::uint32_t> > myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 使用迭代器倒序遍歷map
std::map<std::uint32_t, std::string>::iterator iter;
for (iter = myMap.begin(); iter != myMap.end(); ++iter)
{
std::cout << iter->first << " => " << iter->second << '\n';
}
return 0;
}4.2 使用 while 循環(huán)
#include <iostream>
#include <map>
int main()
{
std::map<std::uint32_t, std::string, std::greater<std::uint32_t> > myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
std::map<std::uint32_t, std::string>::iterator iter = myMap.begin();
// 使用迭代器倒序遍歷map
while (iter != myMap.end())
{
std::cout << iter->first << " => " << iter->second << '\n';
++it;
}
return 0;
}到此這篇關(guān)于C++ std::map幾種遍歷方式(正序倒序)的文章就介紹到這了,更多相關(guān)C++ std::map遍歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++深入分析數(shù)據(jù)在內(nèi)存中的存儲形態(tài)
使用編程語言進(jìn)行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么2023-01-01
詳解c++中signal信號攜帶數(shù)據(jù)的接收與發(fā)送
這篇文章主要為大家詳細(xì)介紹了c++中signal信號攜帶數(shù)據(jù)的接收與發(fā)送的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
如何使用visual studio2019創(chuàng)建簡單的MFC窗口(使用C++)
這篇文章主要介紹了如何使用visual studio2019創(chuàng)建簡單的MFC窗口(使用C++),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

