C++에서 맵을 반복하는 방법
-
while
루프를 사용하여std::map
요소 반복 -
전통적인
for
루프를 사용하여std::map
요소 반복 -
범위 기반
for
루프를 사용하여std::map
요소 반복 -
범위 기반
for
루프를 사용하여std::map
키-값 쌍 반복
이 기사에서는 여러 메서드를 사용하여 C++에서map
을 반복하는 방법을 설명합니다.
while
루프를 사용하여std::map
요소 반복
먼저 임시 맵 구조 tempMap
을 정의하고 임의의 키/값 쌍으로 채 웁니다.이를 stdout
에서 출력하여 제안 된 솔루션을 더 잘 보여줍니다.
#include <iostream>
#include <map>
using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;
int main() {
map<int, string> tempMap = {{
1,
"Apple",
},
{
2,
"Banana",
},
{
3,
"Mango",
},
{
4,
"Raspberry",
},
{
5,
"Blackberry",
},
{
6,
"Cocoa",
}};
auto iter = tempMap.begin();
while (iter != tempMap.end()) {
cout << "[" << iter->first << "," << iter->second << "]\n";
++iter;
}
cout << endl;
return 0;
}
출력:
[1,Apple]
[2,Banana]
[3,Mango]
[4,Raspberry]
[5,Blackberry]
[6,Cocoa]
이 메서드는 가독성을 위해 권장되므로std::map
반복자를 선언하기 위해auto
유형 지정자를 사용합니다. 명시 적으로 지정할 수있는map<int, string>::iterator
입니다.
전통적인for
루프를 사용하여std::map
요소 반복
이제 가독성이 가장 나쁜 기존의 for
반복으로 동일한 루프를 구현해 보겠습니다.
#include <iostream>
#include <map>
using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;
int main() {
map<int, string> tempMap = {{
1,
"Apple",
},
{
2,
"Banana",
},
{
3,
"Mango",
},
{
4,
"Raspberry",
},
{
5,
"Blackberry",
},
{
6,
"Cocoa",
}};
for (auto iter = tempMap.begin(); iter != tempMap.end(); ++iter) {
cout << "[" << iter->first << "," << iter->second << "]\n";
}
cout << endl;
return 0;
}
범위 기반for
루프를 사용하여std::map
요소 반복
범위 기반 루프는 한동안 C++ 프로그래머에게 일반적인 선택이었습니다. 컴파일러가 C++ 11 버전을 지원하는 경우 기존의 번거로운 루프에 대해 더 이상 생각하지 말고 다음 예제의 우아함을 높이 평가해야합니다.
#include <iostream>
#include <map>
using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;
int main() {
map<int, string> tempMap = {{
1,
"Apple",
},
{
2,
"Banana",
},
{
3,
"Mango",
},
{
4,
"Raspberry",
},
{
5,
"Blackberry",
},
{
6,
"Cocoa",
}};
for (const auto &item : tempMap) {
cout << "[" << item.first << "," << item.second << "]\n";
}
cout << endl;
return 0;
}
범위 기반for
루프를 사용하여std::map
키-값 쌍 반복
이 버전은 C++ 17 표준 이후로 정의되어 연관 컨테이너에서보다 유연한 반복을 제공합니다. 이전 예제에 비해이 방법의 주요 장점은map
구조에서 키-값에 편리하게 액세스 할 수 있다는 것입니다. 이는 프로그래머가 더 나은 가독성을 보장합니다.
#include <iostream>
#include <map>
using std::cin;
using std::cout;
using std::endl;
using std::map;
using std::string;
int main() {
map<int, string> tempMap = {{
1,
"Apple",
},
{
2,
"Banana",
},
{
3,
"Mango",
},
{
4,
"Raspberry",
},
{
5,
"Blackberry",
},
{
6,
"Cocoa",
}};
for (const auto& [key, value] : tempMap) {
cout << "[" << key << "," << value << "]\n";
}
cout << endl;
return 0;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook