在C++11標(biāo)準(zhǔn)之后,可以使用for
循環(huán)結(jié)構(gòu)中的auto
關(guān)鍵字來(lái)簡(jiǎn)化遍歷容器的操作,例如:
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用auto關(guān)鍵字遍歷容器
for (auto i : vec) {
std::cout << i << std::endl;
}
在這個(gè)例子中,auto i
會(huì)自動(dòng)推導(dǎo)出i
的類(lèi)型為int
,并且遍歷vec
容器中的元素。這樣可以簡(jiǎn)化代碼并且使代碼更加直觀(guān)。for auto
結(jié)構(gòu)也可以用于迭代器上,類(lèi)似于如下的例子:
std::map<std::string, int> myMap = { {"a", 1}, {"b", 2}, {"c", 3} };
// 使用auto關(guān)鍵字遍歷map容器中的鍵值對(duì)
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
在這個(gè)例子中,auto& pair
會(huì)自動(dòng)推導(dǎo)出pair
的類(lèi)型為std::pair<const std::string, int>
,并且遍歷myMap
中的鍵值對(duì)。