프로그래밍/C++

[C++] pair, tuple 보다 편한게 구조체(Struct) ?

준코딩 2020. 5. 8. 23:13
요약 : pair 와 tuple 보다 구조체(Struct) 를 사용하면 보다 효율적이고 직관적인 알고리즘 코딩이 가능합니다.

 


 

 

우선 pair 와 tuple 의 장단점을 조금 생각해보자면

pair는 원소의 접근이 편하지만 공간이 두 개로 한정적입니다.

tuple은 공간이 무한하지만 접근이 불편합니다.

 

 

 

이러한 이유에서 저는 상황에 따라서 사용했습니다.

그러다가 최근에 구조체(Struct)를 사용하게 됬습니다.

 

 

 

구조체는  이름만으로도 무겁고 귀찮게 느껴집니다.

예를 들어 봅시다.

 

 

 

왼쪽, 오른쪽, 위, 아래의 4가지 정보를 한 세트로 하는

알고리즘을 구현한다고 생각해봅시다.

아래의 두 가지 구현에서 느끼셔야 할 부분은 세 가지 입니다.

 

1. 구조체 구현이 얼마나 간단한가.

2. 원소 추출이 얼마나 간편한가.

3. 구현된 코드가 얼마나 직관적인가.

 

 

 

< tuple을 통한 구현 >

 

int main() {

	///////// 원소삽입 //////////
	int l, r, u, d;
	auto T = make_tuple(l, r, u, d);

	//////// 원소추출 ///////////
	int nl, nr, nu, nd;
	tie(nl, nr, nu, nd) = T;
	cout << "아래 : " << nd << endl;

	return 0;
}

 

< 구조체를 통한 구현 >

 

struct direction {
	int left;
	int right;
	int up;
	int down;
};

int main() {

	///////// 원소삽입 //////////
	int l, r, u, d;
	direction T = { l, r, u, d };

	//////// 원소추출 ///////////
	cout << "아래 : " << T.down << endl;

	
	return 0;

}

 

 

해당 코드만 봐서는 사실 제가 의도한 바를 모두 알기 힘들 겁니다.

하지만 알고리즘을 구현할 때 사용해보시면

분명히 간편하고 직관적임을 느끼실 수 있을 겁니다.