pair 가지고 놀다가 정리한번 해야겠다는 생각 듦.

template<typename T1, typename T2>
ostream& operator<<(ostream& os, pair<T1,T2>& p){
	return os << "(" << p.first << ", " << p.second << ")" << "\n";
}

pair<int, string> p = {1, "hi"};
pii p2 {1, 2};

cout << p << p2; // (1, hi) (1, 2)

 

pair뿐만 아니라 vector 등 여러 container 초기화에 쓰일 수 있는데, 성능 차이가 나는지 모르겠네.

list initialization은 다른 init 방식의 syntactic sugar가 아닐까?

 

 

쓸데 없는 링크들

 

https://openmynotepad.tistory.com/14

 

C++11) 초기화 리스트(initialize_list)

 <기본 정리> 초기화 리스트(initialize_list)는 C++11에서 도입된 방식이다. 이전 C++98 에서는 Member Initializer list ( 콜론 초기화 ) 를 통해서 멤버 변수들 초기화가 가능했으며 C++ 11 부터는 Braced-In..

openmynotepad.tistory.com

https://en.cppreference.com/w/cpp/language/list_initialization

 

List-initialization (since C++11) - cppreference.com

Initializes an object from braced-init-list. [edit] Syntax [edit] Direct-list-initialization T object { arg1, arg2, ... }; (1) T { arg1, arg2, ... } (2) new T { arg1, arg2, ... } (3) Class { T member { arg1, arg2, ... }; }; (4) Class::Class() : member{arg

en.cppreference.com

 

'<언어> > [C++]' 카테고리의 다른 글

[C++] Static  (0) 2022.05.02
[C++] Template (Typename, Class)  (0) 2022.01.24
[C++] enum vs enum class  (0) 2022.01.20
[Modern C++][C++17] Structured Binding  (0) 2021.08.15
[Modern C++][C++11] push_back vs emplace_back  (0) 2021.07.16

+ Recent posts