본문 바로가기

STL 컨테이너 개요 STL은 크게 2가지 컨테이너를 제공한다. 1. 시퀀스 컨테이너 - 모든 원소들이 자신만의 위치를 가지고 있는 순서가 존재하는 컬렉션 ex) vector,deque,list 2. 연관 컨테이너 - 모든 원소들의 정렬 기준에 의존하여 자동 정렬이되는 컬렉션 ex) set,multiset,map,multimap 3. vector - 자신의 원소들을 동적인 배열을 이용하여 관리한다. 랜덤액세스 가능하며 배열의 끝부분에 데이터를 추가하거나 삭제하는 것은 매우 빠르다. 하지만 데이터를 배열 중간이나 앞부분에 삽입하는 것은 많은 시간을 필요로 한다.. 밀림.. #include vector coll; coll.push_back(data); 4. deque - 앞뒤로 data를 삽입,삭제가 가능한 배열구조이다. 앞뒤로.. 더보기
보조 함수(max,min,swap) 두 값의 최대값과 최소값, 교환을 처리하는 함수는 에 다음과 같이 정의되어 있다. namespace std{ template inline const T& min(const T& a, const T& b){ return b < a ? b : a; } template inline const T& max(const T& a,const T&b){ return a < b ? b : a; } template inline void swap(T& a,T&b){ T tmp(a); a = b; b = tmp; } } 더보기
수치 제한(numeric limits) 수치 타입은 일반적으로 플랫폼에 종속적인 제한값을 가진다. STL는 제한값들을 numeric_limits 템플릿 클래스로 제공 타입의 안정성을 도모하고 프로그래머가 제한값을 작성할 수 있다. namespace std{ //int를 위한 수치제한 template class numeric_limits{ public: //int의 수치 제한을 위한 전문화가 존재함 static const bool is_spcialized = true; static T min() throw{ return -2147483648; } static T max() throw{ return 2147483647; } static const int digits = 31; 일반적인 numeric_limits템플릿과 표준 전문화는 헤더파일에서 .. 더보기