상세 컨텐츠

본문 제목

[C++ STL] pair

language/C++

by 힐둔 2022. 5. 8. 18:57

본문

pair는 두개의 자료형을 함께 결합해서 사용할 때 사용합니다. 같은 데이터형도 될 수 있으며 서로 다른 데이터형도 될 수 있습니다. 기존에 struct로 구성해서 사용하던 것을 pair를 이용해서 간단히 사용할 수 있습니다. DFS/ BFS 할 때의 좌표 (int x, int y) 정보를 저장할 때 사용할 수도 있고, 두 데이터를 묶을 때 사용하게 됩니다. 만약 두개 이상의 데이터를 묶길 원한다면 tuple을 사용하세요. 혹은 pair안에 pair를 하나 넣어주셔도 됩니다.

 

BFS에서 좌표를 저장하는 Queue를 생성할 때에는 아래와 같이 선언하세요.

queue<pair<int,int>> q;

 

Definition
<utility>

 

pair 생성/사용 방법

pair <data_type1, data_type2> Pair_name

값을 지정해서 생성하거나 다른 값을 복사해서 생성하거나 혹은 make_pair를 이용해서 생성할 수 있습니다. 그리고 첫번째는 first, 두번째는 second로 접근할 수 있고,  pair안에 pair를 넣을 수도 있습니다. first, second만 중첩될뿐 사용법은 동일 합니다.

// pair::pair example
#include <utility>      // std::pair, std::make_pair
#include <string>       // std::string
#include <iostream>     // std::cout

using namespace std;


int main() {
	pair <string, double> product1;                     // default constructor
	pair <string, double> product2("tomatoes", 2.30);   // value init
	pair <string, double> product3(product2);          // copy constructor

	product1 = make_pair("lightbulbs", 0.99);   // using make_pair (move)

	product2.first = "shoes";                  // the type of first is string
	product2.second = 39.90;                   // the type of second is double

	pair <pair<string, double>, pair<string, double>> product4;

	product4.first.first = "Apple";
	product4.first.second = 1.1;
	product4.second.first = "Banana";
	product4.second.second = 2.2;

	cout << "The price of " << product1.first << " is $" << product1.second << '\n';
	cout << "The price of " << product2.first << " is $" << product2.second << '\n';
	cout << "The price of " << product3.first << " is $" << product3.second << '\n';
	cout << "The price of " << product4.first.first << " is $" << product4.first.second << '\n';
	cout << "The price of " << product4.second.first << " is $" << product4.second.second << '\n';

	return 0;
}
c++ pair

 

 

swap

두 변수의 값을 swap 해줄때 사용

// pair::pair example
#include <utility>      // std::pair, std::make_pair
#include <string>       // std::string
#include <iostream>     // std::cout

using namespace std;


int main() {
	pair <string, double> product1;                 // default constructor
	pair <string, double> product2("banana", 2.00);   // value init

	product1 = make_pair("apple", 1.00);   // using make_pair (move)

	cout << "Before swap" << endl;
	cout << "Product1 : price of " << product1.first << " is $" << product1.second << '\n';
	cout << "Product2 : price of " << product2.first << " is $" << product2.second << '\n';

	product1.swap(product2);

	cout << "After swap" << endl;
	cout << "Product1 : price of " << product1.first << " is $" << product1.second << '\n';
	cout << "Product2 : price of " << product2.first << " is $" << product2.second << '\n';

	return 0;
}

 

 

비교연산자 (==, !=, >,<) 사용가능

'language > C++' 카테고리의 다른 글

[C++ STL] 순열 (next_permutation, prev_permutation)  (0) 2022.05.08

관련글 더보기

댓글 영역