● STL
OOP이후의 또다른 시도인 STL은 일반화 프로그래밍 기법이라는 좀 더 발전된 개념의 재사용성을 제공한다. 일반화(Generic)는 객체 지향의 다음 세대라고 일컬어지는데 두 가지 측면에서 일반성을 제공한다.
① 임의 타입에 사용할 수 있는 자료 구조를 만들 수 있다. 정수, 실수 등의 기본 타입은 물론이고 사용자 정의형 타입과 그 유도형까지도 관리할 수 있는 자료 구조를 정의할 수 있다. 자료 구조의 일반성을 구현하기 위해 인수로 전달된 타입으로 클래스를 정의하는 C++의 템플릿 문법이 사용
된다.
② 자료 구조의 형태나 내부 구조에 상관없이 임의의 데이터 집합에 적용할 수 있는 일반화된 알고리즘을 제공한다. 자료 구조에 상관없이 사용 방법
이 동일하므로 어떠한 형태의 데이터에 대해서도 적용할 수 있다. 논리적으로 비슷한 작업은 같은 방법으로 수행할 수 있으며 이를 위해 반복자라
는 일반화된 포인터를 사용한다.
이런 일반화의 개념에 의해 자주 사용되는 자료 구조와 알고리즘을 제공하는 라이브러리가 바로 STL이다. 개발자는 자료 구조를 일일이 구현할 필요없이 STL이 제공하는 자료 구조를 선택해서 사용할 수 있으며 하나의 알고리즘을 임의의 자료 구조에 대해 일관되게 사용할 수 있다. 최소한의 의사표현만으로 모든 처리가 자동으로 수행된다. ● 순차 컨테이너 (Sequence Container) ● 컨테이너 어댑터 (Container Adaptor) ● 연관 컨테이너
● deque (양방향 큐) 컨테이너 :
- by msdn kor
컨테이너의 시작과 끝에 빠른삽입과 삭제가 가능합니다.
- by soenlab
양쪽 끝이 있는 큐이며 양 끝에서 자료를 삽입, 삭제할 수 있다. 컴파일러에 따라 데크의 구현 방식이 다르겠지만 주로 메모리 블록을 할당하여 연결해 놓고 양쪽 끝으로 추가 할당해 나가는 방식으로 구현된다.
- by etc
양쪽에서 끝나는 큐 (Double ended queue) 로 <deque> 에 정의되어 있다.
- T : (보관하려는) 원소의 타입
- Allocator : 어떠한 방식으로 메모리를 할당할지에 관련한 할당자(allocator) 타입을 나타낸다. 기본값으로 T 의 할당자 클래스 템플릿을 사용하며, Heap 에 할당하게 된다. 많은 경우 인자를 생략한다.
- 맴버함수
- 생성자 : 데크를 생성한다.
- 소멸자 : 데크를 소멸한다.
- operator= : 데크의 내용을 복사한다.
- 반복자
- begin : 시작 부분 (첫번째 원소) 을 가리키는 반복자를 리턴한다.
- end : 끝 부분 (마지막 원소 바로 다음) 을 가리키는 반복자를 리턴한다.
- rbegin : 역순으로 첫번째 (즉, 마지막 원소) 를 가리키는 반복자를 리턴한다.
- rend : 역순으로 끝 부분 (즉, 첫번째 원소 바로 이전) 을 가리키는 반복자를 리턴한다.
- 할당 관련 (벡터와는 다르게 capacity 와 reserve 가 없다! )
- size : 데크의 size 를 리턴한다 (현재 원소의 개수)
- max_size : 데크 최대 크기를 리턴한다.
- resize : 데크가 size 개의 원소를 포함하도록 변경한다.
- empty : 데크가 비었는지 체크한다.
- 임의 접근
- operator[] : 원소에 접근한다.
- at : 원소에 접근한다.
- front : 첫번째 원소에 접근한다.
- back : 마지막 원소에 접근한다.
- 수정자 (Modifier)
- assign : 데크에 원소를 집어넣는다.
- push_back : 데크 끝에 원소를 집어 넣는다.
- push_front : 데크 맨 앞에 원소를 집어 넣는다.
- pop_back : 마지막 원소를 제거한다.
- pop_front : 첫번째 원소를 제거한다.
- insert : 데크 중간에 원소를 추가한다.
- erase : 원소를 제거한다.
- swap : 다른 데크와 원소를 바꿔치기 한다.
- clear : 원소를 모두 제거한다.
- 할당자
- get_allocator : 할당자(allocator) 을 얻는다.
- 맴버변수
- reference : Allocator::reference
- const_reference : Allocator::const_reference
- iterator : 임의 접근 반복자(random access iterator)
- const_iterator : 상수 임의 접근 반복자 (즉, 접근하는 원소의 내용을 수정 못함)
- size_type : 데크 size 를 나타내는 타입 (많은 경우 size_t 와 타입이 같으며 부호없는 정수이다)
- difference_type : 데크 내의 두 원소 사이의 거리를 나타내는 타입 (많은 경우 ptfdiff_t 와 타입이 같으며 부호있는 정수)
- value_type : 원소 타입 (T)
- allocator_type : 할당자
- pointer : 포인터 (Allocator::pointer)
- const_pointer : 상수 포인터 (Allocator::const_pointer)
- reverse_iterator : 역 반복자 (끝에서 부터 참조해나간다) reverse_iterator<iterator>
- const_reverse_iterator : 상수 역 반복자 (reverse_iterator<const_iterator>)
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>- by msdn kor 1999 www.w3.org xhtml:sentenceText>
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>컨테이너의 모든 위치에 빠른 삽입과 삭제를 할수 있지만 컨테이너 요소를 임의로 액세스할 수 없습니다. 1999 www.w3.org xhtml:sentenceText>
- by soenlab
리스트는 이중 연결 리스트로 구현된 컨테이너이다. 리스트의 요소들은 노드라는 구조체로 관리되며 노드끼리는 링크로 서로 연결되어 있어 요소의 논리적인 순서를 기억한다. 노드는 링크에 의해 연결될 뿐이므로 인접한 메모리에 배치되지 않아도 상관없으며 삽입, 삭제할 때도 앞뒤 노드의 링크만 조작하므로 대용량의 메모리를 밀고 당길 필요가 없다. 그래서 삽입, 삭제 속도가 대단히 빠르다. 반면 리스트의 한 요소를 찾으려면 첫 노드부터 순서대로 링크를 따라 이동해야 하므로 읽기 속도는 무척 느리다.
- by etc
리스트(list) 는 헤더파일 <list> 에 정의된 순차 컨테이너의 한 종류로 원소들은 메모리 상에 선형으로 배열된다.
- T : (보관하려는) 원소의 타입
- Allocator : 어떠한 방식으로 메모리를 할당할지에 관련한 할당자(allocator) 타입을 나타낸다. 기본값으로 T 의 할당자 클래스 템플릿을 사용하며, Heap 에 할당하게 된다. 많은 경우 인자를 생략한다.
- 맴버함수
- 생성자 : 리스트를 생성한다.
- 소멸자 : 리스트를 소멸한다.
- operator= : 리스트의 내용을 복사한다.
- 반복자
- begin : 시작 부분 (첫번째 원소) 을 가리키는 반복자를 리턴한다.
- end : 끝 부분 (마지막 원소 바로 다음) 을 가리키는 반복자를 리턴한다.
- rbegin : 역순으로 첫번째 (즉, 마지막 원소) 를 가리키는 반복자를 리턴한다.
- rend : 역순으로 끝 부분 (즉, 첫번째 원소 바로 이전) 을 가리키는 반복자를 리턴한다.
- 할당관련(백터와는 다르게 capacity와 reserve가 없다.)
- size : 리스트의 size 를 리턴한다 (현재 원소의 개수)
- max_size : 리스트 최대 크기를 리턴한다.
- resize : 리스트가 size 개의 원소를 포함하도록 변경한다.
- empty : 리스트가 비었는지 체크한다.
- 임의접근
- front : 첫번째 원소에 접근한다.
- back : 마지막 원소에 접근한다
- 수정자 (Modifier)
- assign : 리스트에 원소를 집어넣는다.
- push_back : 리스트 끝에 원소를 집어 넣는다.
- push_front : 리스트 맨 앞에 원소를 집어 넣는다.
- pop_back : 마지막 원소를 제거한다.
- pop_front : 첫번째 원소를 제거한다.
- insert : 리스트 중간에 원소를 추가한다.
- erase : 원소를 제거한다.
- swap : 다른 리스트와 원소를 바꿔치기 한다.
- clear : 원소를 모두 제거한다.
- 특별한 작업들 (Operations)
- splice : 리스트와 리스트 사이에서 원소를 이동한다.
- remove : 특정 값을 지닌 원소를 삭제한다.
- remove_if : 특정 조건을 만족시 원소를 삭제한다.
- unique : 중복된 값을 삭제한다.
- merge : 정렬된 리스트를 합친다.
- sort : 컨테이너의 원소를 정렬한다.
- reverse : 원소들의 순서를 거꾸로 뒤집는다.
- get_allocator : 할당자(allocator) 을 얻는다.
- reference : Allocator::reference
- const_reference : Allocator::const_reference
- iterator : 임의 접근 반복자(random access iterator)
- const_iterator : 상수 임의 접근 반복자 (즉, 접근하는 원소의 내용을 수정 못함)
- size_type : 리스트 size 를 나타내는 타입 (많은 경우 size_t 와 타입이 같으며 부호없는 정수이다)
- difference_type : 리스트 내의 두 원소 사이의 거리를 나타내는 타입 (많은 경우 ptfdiff_t 와 타입이 같으며 부호있는 정수)
- value_type : 원소 타입 (T)
- allocator_type : 할당자
- pointer : 포인터 (Allocator::pointer)
- const_pointer : 상수 포인터 (Allocator::const_pointer)
- reverse_iterator : 역 반복자 (끝에서 부터 참조해나간다) reverse_iterator<iterator>
- const_reverse_iterator : 상수 역 반복자 (reverse_iterator<const_iterator>)
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>- by msdn kor 1999 www.w3.org xhtml:sentenceText>
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>배열 처럼 동작 하며 자동으로 증가 합니다. 1999 www.w3.org xhtml:sentenceText>
- by soenlab
벡터는 쉽게 말해서 동적 배열이라고 생각하면 된다. 요소의 개수에 맞게 자동으로 메모리를 재할당하여 크기를 신축적으로 늘릴 수 있는 배열이다. 단순한 동적 배열에 비해 템플릿 기반이므로 요소의 타입에 무관한 배열을 만들 수 있다는 것이 큰 장점이다.
- by etc
벡터(vector) 는 헤더파일 <vector> 에 정의되어 있는 는 순차 컨테이너의 한 종류로, 각각의 원소들이 선형으로 배열되어 있다.
- T : (보관하려는) 원소의 타입
- Allocator : 어떠한 방식으로 메모리를 할당할지에 관련한 할당자(allocator) 타입을 나타낸다. 기본값으로 T 의 할당자 클래스 템플릿을 사용하며, Heap 에 할당하게 된다. 많은 경우 인자를 생략한다.
- 생성자 : 벡터를 생성한다.
- 소멸자 : 벡터를 소멸한다.
- operator= : 벡터의 내용을 복사한다.
- begin : 시작 부분 (벡터의 첫번째 원소) 을 가리키는 반복자를 리턴한다.
- end : 끝 부분 (벡터의 마지막 원소 바로 다음) 을 가리키는 반복자를 리턴한다.
- rbegin : 역순으로 첫번째 (즉, 벡터의 마지막 원소) 를 가리키는 반복자를 리턴한다.
- rend : 역순으로 끝 부분 (즉, 벡터의 첫번째 원소 바로 이전) 을 가리키는 반복자를 리턴한다.
- size : 벡터의 size 를 리턴한다 (현재 원소의 개수)
- max_size : 벡터 최대 크기를 리턴한다.
- resize : 벡터가 size 개의 원소를 포함하도록 변경한다.
- capacity : 벡터에 할당된 전체 크기를 리턴한다.
- empty : 벡터가 비었는지 체크한다.
- reserve : 벡터에 할당된 크기를 변경한다.
- operator[] : 원소에 접근한다.
- at : 원소에 접근한다.
- front : 첫번째 원소에 접근한다.
- back : 마지막 원소에 접근한다.
- assign : 벡터의 원소를 집어넣는다.
- push_back : 벡터 끝에 원소를 집어 넣는다.
- pop_back : 마지막 원소를 제거한다.
- insert : 벡터 중간에 원소를 추가한다.
- erase : 원소를 제거한다.
- swap : 다른 벡터와 원소를 바꿔치기 한다.
- clear : 원소를 모두 제거한다.
- get_allocator : 할당자(allocator) 을 얻는다.
- reference : Allocator::reference
- const_reference : Allocator::const_reference
- iterator : 임의 접근 반복자(random access iterator)
- const_iterator : 상수 임의 접근 반복자 (즉, 접근하는 원소의 내용을 수정 못함)
- size_type : 벡터 size 를 나타내는 타입 (많은 경우 size_t 와 타입이 같으며 부호없는 정수이다)
- difference_type : 벡터 내의 두 원소 사이의 거리를 나타내는 타입 (많은 경우 ptfdiff_t 와 타입이 같으며 부호있는 정수)
- value_type : 원소 타입 (T)
- allocator_type : 할당자
- pointer : 포인터 (Allocator::pointer)
- const_pointer : 상수 포인터 (Allocator::const_pointer)
- reverse_iterator : 역 반복자 (끝에서 부터 참조해나간다) reverse_iterator<iterator>
- const_reverse_iterator : 상수 역 반복자 (reverse_iterator<const_iterator>)
벡터 템플릿 클래스는 특별히 bool 타입에 대한 템플릿 특수화(specialization)를 가지고 있다.
bool 만 특별하게 특수화 시킨 이유는 메모리 공간을 최적화 하기 위해 bool 원소가 한 개의 비트만 사용하도록 설계하였기 때문이다. (C++ 에서 최소 자료형의 크기는 8 비트 이다 - 즉 실제 bool 객체는 8 비트를 차지한다. ) 따라서 bool 원소의 레퍼런스는 bool& 가 아니라, 아래와 같이 vector<bool> 에 특별히 정의되어 있는 멤버 변수를 통해 vector<bool> 의 단일 비트에 대한 조작을 수행할 수 있게 된다.
friend class vector;
reference(); // public 생성자가 아니다
public:
~reference();
operator bool () const; // bool 로 캐스팅 한다.
reference& operator= ( const bool x ); // bool 을 대입
reference& operator= ( const reference& x ); // 비트로 대입
void flip(); // 비트값 반전 (0 -> 1, 1 -> 0)
}
이와 비슷한 컨테이너로 bitset 이 있다.
- 동적 배열 끝에 새로운 원소를 추가하는 경우를 생각해보자. 만일 이미 공간 자체가 할당되어 있으면 새로운 원소를 추가하는 일은 O(1) 일 것이다. 하지만, 공간이 할당되어 있지 않다면, 보통 2 배의 공간으로 다시 할당하게 되는데 이 때 시간이 O(n) 정도 들어가게 된다. 따라서 전체 평균적으로 볼 때 O(1) 정도의 상수 시간이 걸린다고 볼 수 있고 이러한 형태의 소요 시간을 constant amortized time 이라고 부른다.
● 1999 www.w3.org xhtml:sentenceText>map컨테이너 :
- by msdn kor
1999 www.w3.org xhtml:sentenceText>저장 및 검색에 데이터 값 과 정렬키 모드를 포함하는 요소를 컬렉션에서 데이터로 사용합니다. 고유의 키값은 데이터를 정렬하는 데 사용됩니다.
맵에 있는 요소의 데이터는 직접 변경할 수 있지만 키 값은 상수이므로 변경할 수 없습니다. 대신 이전 요소와 연관된 키 값을 삭제 하고 새 요소에 대한 키 값을 삽입하면 가능합니다.
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>
- by soenlab
셋이 키의 집합만을 관리하는데 비해 맵은 키와 값의 쌍을 관리한다. 연관이 있는 두 개의 값을 쌍으로 관리한다는 점에서 진정한 연관 컨테이너라고 할 수 있다. 셋과 마찬가지로 정렬된 상태로 요소를 저장하므로 키값으로 빠르게 검색할 수 있다. 셋에 비해 값을 추가로 가진다는 차이점이 있는데 반대로 표현하면 셋은 값을 가지지 않는 맵이라고도 할 수 있다.
class Allocator=allocator<pair <const Key, Type> > > class map
- 매개변수
- Key :
맵에 저장 키 데이터 형식입니다. - Type :
맵에 저장 될 요소의 데이터 형식입니다. - Traits :
제공 하는 함수 개체의 형식 맵에서 상대적인 순서를 결정 하는 정렬 키로 두 개의 요소 값을 비교할 수 있습니다. 이 인수는 선택 사항입니다 및 이진 술 부 less<Key> 기본값입니다. - Allocator :
맵의 할당 및 할당 취소에 대 한 세부 정보를 캡슐화 하는 저장 된 할당 개체를 나타내는 형식입니다.
- 생성자
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>일부 맵의 복사본이나 특정 크기의 요소를 특정 값 또는 특정 목록 생성 1999 www.w3.org xhtml:sentenceText>
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText> 1999 www.w3.org xhtml:sentenceText>
xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>- 맴버들
- allocator_type : 맵 개체에 형식에 대 한 정의 allocator.
- const_iterator : 맵의 요소를에서 읽을 수 있는 양방향 반복기에 대한 형식 정의를 const
- const_pointer : 맵의 요소 형식에 대한 포인터의 정의를 const.
- const_reference : 맵의 읽기 및 수행 하는 저장 된 요소의 형식 정의에 대 한 const 작업.
- const_reverse_iterator : 맵의 요소에서 양방향 반복기를 제공 하는 모든 형식을 const.
- difference_type : 반복기가 가리키는 요소 사이의 범위에서 맵의 요소에 대한 typedef 부호 있는 정수입니다.
-
iterator(반복기) : 읽거나 맵의 모든 요소를 수정 하는 양방향 반복기에 대 한 형식 정의입니다.
-
key_compare : Typedef는 함수 개체 맵에서 두 요소의 상대적 순서를 결정 하는 두 개의 정렬 키를 비교할 수 있습니다.
-
key_type : 각 맵 요소에 저장 된 정렬 키에 대한 형식 정의입니다.
-
mapped_type : 각 맵 요소에 저장 된 데이터에 대한 형식 정의입니다.
-
pointer : 맵의 요소 형식에 대한 포인터에 대한 정의 const.
-
reference: Typedef는 맵에 저장 된 요소를 참조 합니다.
-
reverse_iterator : 읽거나 거꾸로 된 맵 요소를 수정할 수 있는 양방향 반복기에 대한 형식 정의입니다.
-
size_type : 맵 요소 수에 대한 부호 없는 정수 형식 정의
-
value_type : 맵 요소에 저장 된 개체의 형식에 대한 형식 정의입니다.
-
- 메서드
- map::at : 지정 된 키 값을 가진 요소를 찾습니다.
- begin : 구조에서 첫 번째 요소를 가리키는 반복기을 반환 합니다.
- map::cbegin : Const 구조에서 첫 번째 요소를 가리키는 반복기를 반환 합니다.
- map::cend : Const 끝 지난 반복기를 반환합니다.
- clear : 맵의 모든 요소를 지웁니다.
- count : 키 매개 변수에서 지정 된 키와 일치 하는 맵에 요소 개수를 반환 합니다.
- map::crbegin : 상수 역방향 맵의 첫 번째 요소를 가리키는 반복기를 반환 합니다.
- map::crend : 마지막 요소 뒤에 거꾸로 된 맵 위치를 가리키는 const 반복기를 반환 합니다.
- map::emplace : 맵으로 위치에서 구성 요소를 삽입 합니다.
- map::emplace_hint : xmlns="http://www.w3.org/1999/xhtml" 1999 www.w3.org xhtml:sentenceText>원위치에 배치 되는 힌트와 지도 생성 하는 요소를 삽입 합니다 1999 www.w3.org xhtml:sentenceText>.
- empty : 맵 비어 있는 경우 true 반환 .
- end : 최종 이전 반복기를 반환합니다.
- equal_range : 한 쌍의 반복기를 반환합니다. 첫 번째 쌍 포인트의 첫 번째 요소에 반복기는 map 지정 된 키 보다 큰 키. 두 번째 쌍 포인트의 첫 번째 요소에 반복기는 map 키 키 보다 크거나 같은 경우에.
- erase : 지도에서 지정 된 위치에서 요소 또는 요소 범위를 제거합니다.
- find : 요소의 지정 된 키의 값과 일치하는 맵의 위치를 가리키는 키 값을 반환 합니다.
- get_allocator : 복사본을 반환 된 allocator 지도 생성 하는 데 사용 되는 개체입니다.
- insert :요소 또는 요소의 범위 지도에서 지정 된 위치에 삽입합니다.
- key_comp : 맵의 순서 키를 사용 하는 비교 개체의 복사본을 반환 합니다.
- lower_bound : 지정 된 키 보다 크거나 같은 키 값이 맵의 첫 번째 요소를 반환 합니다.
- max_size : 맵의 최대 길이 반환합니다.
- rbegin : 반전 된 맵의 첫 번째 요소를 반환합니다.
- rend : 마지막 요소 뒤에 거꾸로 된 맵 위치의 해당 포인트를 반환합니다.
- size : 맵에서 요소 개수를 반환합니다.
- swap : 두 맵의 요소를 교환합니다.
- upper_bound : 맵에서 지정 된 키 보다 큰 키 값을 가진 첫 번째 요소에 반환 합니다.
value_comp : 맵의 순서 대로 요소 값에 사용 되는 비교 개체의 복사본을 검색 합니다.
- 연산자
- operator[] :지정 된 키 값을 사용 하 여 맵을에 요소를 삽입합니다.
- map::operator= : 지도 요소의 다른 맵의 복사본으로 대체합니다.
● set 컨테이너 :
셋(Set)은 노드 구조체 기반으로 맵과 비슷하지만, 키(Key)만으로 관리한다.
> 키는 고유한 값으로써 정렬 및 검색의 기준으로 사용한다. 구조는 맵과 같은 이진 검색 트리이다.
데이터를 정렬할 때, 많은 데이터에서 검색할 때, 키를 이용해 원하는 값을 빠르게 검색할 수 있다.
단, 선형 검색 속도는 느리다.
- 맴버 변수들
생성자 : set을 생성한다.
소멸자 : set을 소멸한다.
operator= : 벡터의 내용을 복사한다.
- 반복자
begin : 시작 부분 (set의 첫번째 원소) 을 가리키는 반복자를 리턴한다.
end : 끝 부분 (set의 마지막 원소 바로 다음) 을 가리키는 반복자를 리턴한다.
rbegin : 역순으로 첫번째 (즉, set의 마지막 원소) 를 가리키는 반복자를 리턴한다.
rend : 역순으로 끝 부분 (즉, set의 첫번째 원소 바로 이전) 을 가리키는 반복자를 리턴한다.
- 할당 관련
empty : 컨테이너가 비어 있는지 여부를 테스트한다
size : 컨테이너의 사이즈를 리턴한다. (현제 원소의 갯수)
max_size : set의 최대 크기를 리턴한다
- 수정자 (Modifier)
insert : 원소를 추가한다.
erase : 원소를 제거한다.
swap : 원소를 바꿔치기 한다.
clear : 원소를 모두 제거한다.
- 옵저버(Observers)
key_comp : key의 비교객체를 반환
value_comp : value의 비교 객체를 반환
- 운영자 (Operations)
find : 찾는 원소의 반복자를 리턴한다
count : 특정 값을 가진 원소의 갯수를 센다.
- 정렬된 범위에 대해 동등성을 사용하는 것들
lower_bound : 찾는 키를 가진 원소 중 중 첫번째 원소를 리턴한다.
upper_bound : 찾는 키를 가진 원소 중 마지막 요소의 다음을 리턴한다
equal_range : 찾는 키를 가진 원소 중 반복자를 쌍으로 반환한다.제일 처음 찾은 위치를 first , 두번째를 second로 반환.
- 할당자
get_allocator : 할당자(allocator) 을 얻는다.
컨테이너에 포함된 대표적인 맴버 함수들
맴버 함수 설명 포함 | ||
empty |
컨테이너가 비어 있는지 검사 |
모든 컨테이너 |
size |
컨테이너에 포함된 요소 개수를 반환 | |
clear |
컨테이너의 모든 요소를 삭제 | |
begin |
컨테이너의 첫 번째 요소의 반복자 반환 | |
end |
컨테이너의 마지막 요소 다음 위치 반복자 반환 | |
rbegin |
컨테이너의 마지막에서, 첫 번째 요소의 반복자 반환 | |
rend |
컨테이너의 마지막에서, 마지막 요소 다음 위치 반복자 반환 rbegin과 같이 사용 | |
push_back |
요소 하나를 컨테이너의 마지막에 추가 |
순차 컨테이너 |
pop_back |
컨테이너 마지막 요소 삭제 | |
back |
컨테이너의 마지막 요소 읽기 | |
front |
컨테이너의 첫번째 요소 읽기 | |
push_front |
요소 하나를 컨테이너의 첫 번째 요소로 추가 |
deque,list |
pop_front |
컨테이너의 첫 번째 요소를 삭제 | |
insert |
요소 하나 또는 여러 개의 요소를 컨테이너 추가 |
모든 컨테이너 |
erase |
요소 하나 또는 여러 개의 요소를 컨테이너에 삭제 | |
count |
값이 일치하는 요소의 개수를 반환 |
연관 컨테이너 |
find |
값이 일치하는 첫 번째 요소의 반복자 반환 | |
lower_bound |
값이 일치하는 여러 요소중 가장 앞쪽에 있는 반복자 반환 | |
upper_bound |
값이 일치하는 요소들중에 지난 첫 번째 위치 반환 end반복자와 같은 개념 | |
equal_range |
lower_bound 와 upper_bound의 기능을 결합한 함수 |
http://neodreamer.tistory.com/256