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;
}
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;
}
비교연산자 (==, !=, >,<) 사용가능
[C++ STL] 순열 (next_permutation, prev_permutation) (0) | 2022.05.08 |
---|
댓글 영역