map 컨테이너연관 컨테이너로 원소를 key와 value의 쌍으로 저장한다.set은 원소를 key하나로 저장하지만 map은 원소를 key와 value 쌍으로 저장하며, map도 key의 중복 저장을 하지 못하지만 중복저장을 원한다면 multiset을 사용해야한다.map은 [ ] 연산자를 제공하여 key에 해당하는 원소의 value에 쉽게 접근하거나 변경할 수 있다. 균형 이진 트리: 모든 노드가 부모보다 왼쪽이 작고 오른쪽이 큰 형태. (반대라면 반대로) 연관 컨테이너는 균형 이진 트리를 사용하므로 찾기연산( find(), lower_bound(), upper_bound(), equal_range(), count())에 뛰어난 성능(로그 시간)을 보이며 insert 또한 로그 시간 복잡도를 보인다. 중복..
set 컨테이너연관 컨테이너 중 단순한 컨테이너로 Key라 불리는 원소(value)의 집합으로 이뤄진 컨테이너. 중복 혀용X노드 기반의 컨테이너로 균형 이진 트리로 구현되어 있다.set은 원소를 삽입할때 유일한 멤버 함수 insert( )를 제공한다. 균형 이진 트리: 모든 노드가 부모보다 왼쪽이 작고 오른쪽이 큰 형태. (반대라면 반대로) 연관 컨테이너는 균형 이진 트리를 사용하므로 찾기연산( find(), lower_bound(), upper_bound(), equal_range(), count())에 뛰어난 성능(로그 시간)을 보이며 insert 또한 로그 시간 복잡도를 보인다. 중복을 허용하는 multiset 컨테이너템플릿 형식, 인터페이스, 멤버의 형식 모두 set과 같고, key가 중복으로 저..
1. 다음 중 vector 컨테이너의 특징을 고르세요.1. 시퀀스 컨테이너입니다.2. sort( ), splice( ) 멤버함수를 제공합니다. (vector 자체에서 sort splice는 제공하지 않음)3. 배열 기반 컨테이너 입니다.4. 컨테이너 앞, 뒤로 추가/제거가 가능합니다. (vector는 뒤로 추가 제거만 가능)5. 임의 접근 반복자를 제공합니다.6. reserve( ) 멤버 함수를 제공합니다.7. 빠른 시간(상수 시간)에 원소를 삽입, 삭제 할 수 있습니다. (삽입 삭제 시 필요한 만큼의 메모리 공간을 위해 빠른 시간 내에 할 수는 없음) 답: 1, 3, 5, 6 2. 다음 중 deque 컨테이너의 특징을 고르세요.1. 시퀀스 컨테이너 입니다.2. sort( ), splice( ) 멤버 함..
list컨테이너노드 기반의 컨테이너로, 원소가 노드 단위로 저장되며 이중 연결 리스트로 구현됨. list 의 주요 인터페이스템플릿 형식 template >class listT는 list컨테이너 원소의 형식 생성자생성자list ltlt는 빈 컨테이너list lt(n)0원소 n개로 초기화된 컨테이너list lt(n, x)x원소 n개로 초기화된 컨테이너list lt(lt2)lt는 lt2 컨테이너의 복사본 (복사 생성자 호출)list lt(b,2)lt는 반복자 구간 [b, e)로 초기화된 원소를 같는다. 멤버함수멤버함수lt.assign(n,x)lt에 x값으로 n개의 원소를 할당한다lt.assign(b,e)lt에 반복자 b부터 e까지 시퀀스 구간으로 할당한다.lt.back()lt에 마지막 원소를 참조한다.p=l..
Deque 컨테이너vector 컨테이너와 비슷하게 동작하지만 앞으로도 삽입과 삭제가 가능한 컨테이너 vector와 다른 push_backvector에서의 push_back은 기존 메모리에 필요한 메모리를 추가한 메모리공간에 원소들을 삽입했지만deque의 push는 원소가 여러 메모리 블록에 나뉘어 저장된다. Deque의 주요 인터페이스템플릿 형식 template >class dequeT는 deque 컨테이너 원소의 형식 생성자생성자deque dqdq는 빈 컨테이너deque dq(n)0원소 n개로 초기화된 컨테이너deque dq(n, x)x원소 n개로 초기화된 컨테이너deque dq(dq2)dq는 dq2 컨테이너의 복사본 (복사 생성자 호출)deque dq(b,2)dq는 반복자 구간 [b, e)로 초기화..
Vector 컨테이너대표적인 시퀀스 컨테이너이자 배열 기반 컨테이너 Vector의 주요 인터페이스템플릿 형식 template >class vectorT는 vector 컨테이너 원소의 형식 생성자생성자vector vv는 빈 컨테이너vector v(n)0원소 n개로 초기화된 컨테이너vector v(n, x)x원소 n개로 초기화된 컨테이너vector v(v2)v는 v2 컨테이너의 복사본 (복사 생성자 호출)vector v(b,2)v는 반복자 구간 [b, e)로 초기화된 원소를 같는다. 멤버함수멤버함수v.assign(n,x)v에 x값으로 n개의 원소를 할당한다v.assign(b,e)v에 반복자 b부터 e까지 시퀀스 구간으로 할당한다.v.at(i)v에 i번째 원소를 참조한다.v.back()v에 마지막으로 삽입..
1. 다음 빈 칸을 채우세요.1. STL 구성 요소에서 객체들을 저장하는 객체를 ( 컨테이너 ) 라 합니다.2. 컨테이너의 원소를 순회하고 참조하는 객체를 ( 반복자 ) 라 합니다.3. 여러가지 문제 해결을 위한 반복자와 동작하는 함수 템플릿을 ( 알고리즘 ) 라 합니다. 2. 다음 빈 칸을 채우세요.1. 컨테이너 원소가 자신만의 삽입 위치를 갖는 것을 ( 시퀀스 ) 컨테이너라 합니다.2. 컨테이너 원소가 특정 정렬 기준에 의해 자동 정렬된 것을 ( 연관 ) 컨테이너라 합니다. 3. 다음 빈 칸을 채우세요1. 배열 기반 컨테이너인 vector와 deque는 ( 임의 접근 ) 반복자를 제공하며, 그 외 모든 STL컨테이너는 ( 양방향 ) 반복자를 제공합니다.2. (시퀀스(순차열))은 원소의 순..
할당기컨테이너의 메모리 할당 정보와 정책(메모리 할당 모델)을 캡슐화한 STL의 구성 요소할당기는 템플릿 클래스이며 모든 컨테이너는 기본 할당기를 사용합니다.C++의 동적 메모리 할당 연산자 new와 delete를 사용자가 오버로딩해서 사용할 수 있듯이 STL의 할당기도 사용자가 직접 할당기를 정의하고 사용할 수 있습니다. 사용자 정의 할당기: 사용자가 직접 메모리 할당 방식을 제어할 수 있게 합니다. 다중 스레드에 최적화되고 안전한 사용자 메모리 할당 모델이 필요하거나 사용자가 컨테이너에 맞는 메모리 할당 모델을 설계하거나 특정 구현 환경에서 최적화된 메모리 할당 모델을 구축할 때 사용합니다. 컨테이너 기본 할당기 allocator#include #include #include using namespa..
reverse_iterator (역방향 반복자)역방향 반복자도 ++와 -- 로 반복하지만 정방향 반복자의 반대로 동작합니다.역방향 반복자가 ++ 되면 끝지점 인덱스가 5일경우 4로 이동하고, 4에서 -- 로 이동하면 5로 이동합니다.#include #include using namespace std;int main() { vector v; v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(40); v.push_back(50); for (vector::iterator iter = v.begin(); iter != v.end(); iter++) { cout ::iterator> riter(v.end()); //v의 끝지점의 반대편 = v의 시작..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.