C++20에서 아주 재미난 기능이 새로 생겼다, 그것은 C#에서도 봤던(String.Format)과 매우 유사한 메커니즘을 가지고 있는 기능이다 헤더파일 <format>을 필히 추가.
#include <iostream>
#include <algorithm>
#include <string>
#include <utility>
#include <map>
#include <format>
using namespace std;
int main()
{
map<pair<int, int>, int> test_map;
int size;
cout << "총 크기를 입력하세요. "; cin >> size;
// 맵에 삽입
for (int i = 0; i < size; i++)
{
pair<pair<int, int>, int> tmp_pair;
cin >> tmp_pair.first.first >> tmp_pair.first.second >> tmp_pair.second;
test_map.insert(tmp_pair);
}
cout << endl;
int count = 1;
// C++ 17부터, 대괄호로 적용
for (auto& [a, b] : test_map)
std::cout << count++ << " : " << a.first << " " << a.second << " " << b << "\n";
//키 찾기
pair<int, int> key;
cout << "\n찾고자 하는 키 입력 : "; cin >> key.first >> key.second; cout << endl;
cout << (test_map.find(key) != test_map.end() ? format("키 {} {}, 값 {}", key.first, key.second, test_map[key]) : "없는 키") << endl;
return 0;
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ r-value && (임시 객체) / l-value & (고유 객체, 주소값) (0) | 2022.06.15 |
---|---|
C++ RTTI 그리고 vtable(가상 함수 테이블) (0) | 2022.06.14 |
C++ RVO NRVO 반환값 최적화 / Copy Elision(복사 생략) (0) | 2022.06.14 |
C++ 가상함수 테이블 (Virtual Table) (0) | 2022.06.13 |
C++ 캐스팅 static_cast / reinterpret_cast 예제 (0) | 2022.06.10 |