C++

Pair

King94 2019. 10. 31. 11:59

pair

@ pair < int , int > q   두 객체를 하나의 객체로 취급

 

@ pair< int, pair<int,int> > q  pair 안에 pair 가능

 

@ q.first=2  q.second=3   각각의 원소에 값을 넣어줌

 

@ make_pair(변수1,변수2)  초기화 할경우 사용

    ex) pair<int,int> q = make_pair(2,3)

 

pair와 함께 반복자 사용방법

 

vector<pair<int,int> > :: iterator iter=a.begin();

-pair는 클레스 이므로 접근 할때 -> 사용해서 접근

 ex) cout<< iter->first<<endl, cout<<iter->second<<endl;

 

vector && pair

@ vector< pair<int,int> > v

   1) 원소 삽입 방법

       ex) v.push_back(pair<int, int>(1,2) ) 

       ex) v.push_back({1,2})

   2) 원소 출력 방법

       ex) cout<<v[0].first<<
       ex) cout<<v[0].second<<endl

@ vector< pair<int , pair<int,int> > > v

   1) 원소 삽입 방법

       ex) v.push_back(pair<int,pair<int,int> >( 1 ,pair<int,int> (2 , 3) ) )

       ex) v1.push_back( {1,{2,3} } )

   2) 원소 출력 방법

       ex) cout<<v[0].first<<
       ex) cout<<v[0].second.first<<endl

       ex) cout<<v[0].second.second<<endl

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
int main(void)
{
vector<pair<int,int> > v;
v.push_back({1,2});
cout<<v[0].first<<' ';
cout<<v[0].second<<endl;
vector<pair<int,pair<int,int> > > v1;
v1.push_back({1,{2,3}});
cout<<v1[0].first<<' ';
cout<<v1[0].second.first<<' ';
cout<<v1[0].second.second<<' ';
    return 0;
 } 
cs

 

queue && pair

@ queue<pair<int,int> > queue안에 pair을 넣어 두개의 원소를 하나와 같이 사용

   1) 원소 삽입 방법

      @ q.push({2,3})  
      @ q.push(pair<int,int>(2,3));

   2) 원소 출력 방법
      ex) cout<<q.front().first<<endl;
      ex) cout<<q.front().second<<endl;

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
int main(void)
{
    queue<pair<int,int> > q;
    q.push({2,3});
    q.push(pair<int,int>(2,3));
    cout<<q.front().first<<' ';
    cout<<q.front().second<<' ';
    return 0;
 } 
cs

 

stack && pair

@ stack<pair<int,int> > queue안에 pair을 넣어 두개의 원소를 하나와 같이 사용

   1) 원소 삽입 방법

      @ q.push({2,3})  
      @ q.push(pair<int,int>(2,3));

   2) 원소 출력 방법
      ex) cout<<q.top().first<<endl;
      ex) cout<<q.top().second<<endl;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
int main(void)
{
    stack<pair<int,int> > q;
    q.push({2,3});
    q.push(pair<int,int>(2,3));
    cout<<q.top().first<<' ';
    cout<<q.top().second<<' ';
    return 0;
 } 
cs