[C++ STL] Set 컨테이너 사용 예제

[C++ STL] Set 컨테이너 사용 예제

오늘은 Set Container에 대해 알아보겠습니다.

컨테이너들 보면 다 비슷 비슷합니다..만 몇가지 특성과 함께 알아보겠습니다.

헤더파일은 아래와 같습니다.

#include <set>

set 컨테이너는 노드 기반의 컨테이너입니다.
유일한 key값을 입력 가능하며, key값은 중복될 수 없습니다. 입력된 원소는 자동으로 정렬됩니다.(오름차순 default)

선언 방법은 아래와 같습니다.

set<int> set_int;
set<Pair<int, float> > set_Pair;
set<CTempClass *> set_class;

멤버 함수로는 아래와 같습니다.

  • set.begin() : 첫번째 원소의 반복자 반환
  • set.end() : 마지막 원소의 반복자 반환
  • set.insert( key ) : 원소 key를 삽입합니다.
  • set.find( key ) : key와 같은 원소를 찾습니다.
  • set.erase( itr ); itrerator가 가리키는 원소를 제거합니다.
  • set.close() : set을 지웁니다

예제 코드는 아래와 같습니다.

#include <iostream>
#include <set>

using namespace std;

int main()
{
	set<int> set_int;

	set_int.insert( 3 );
	set_int.insert( 5 );
	set_int.insert( 4 );
	set_int.insert( 1 );
	set_int.insert( 2 );
	set_int.insert( 6 );

	for ( set<int>::iterator itr = set_int.begin() ; itr != set_int.end() ; itr++ )
	{
		cout << *itr << endl;
	}
	cout << endl;

	set<int>::iterator itr = set_int.find( 7 );
	if ( itr == set_int.end() )
		set_int.insert( 7 );

	for ( set<int>::iterator itr = set_int.begin() ; itr != set_int.end() ; itr++ )
	{
		cout << *itr << endl;
	}

	set_int.clear();

	return 0;
}