표준 템플릿 라이브러리라고 불리는 STL은 자료와 알고리즘을 효율적으로 관리할 수 있도록 C++에서 제공하는 표준 라이브러리다.
컨테이너(container)는 어떤 종류의 객체 컬렉션(collection)을 관리하는데 사용된다.
순차 컨테이너, sequence containers
순차 컨테이너는 모든 요소들을 선형적인 순차열로 저장하는 형태다.
원소들이 규칙에 따라 저장한 순서대로 배열이 된다.
벡터(vector), 데큐(deque), 리스트(list)가 있다.
연관 컨테이너, associative containers
연관 컨테이너는 키(key)와 값(value) 쌍처럼 관련된(연관된) 데이터를 하나의 쌍 형태로 저장한다.
키와 값을 이용하여 요소들에 대한 빠른 접근을 제공한다.
세트(set), 멀티세트(multiset), 맵(map), 멀티맵(multimap) 가 있다.
Vector
ㅇ C++에서 벡터는 배열의 기능을 확장한 것이다.
ㅇ 배열은 동적할당을 하면 그 크기를 바꿀 수 없지만, 벡터는 크기를 자유롭게 변경할 수 있다.
ㅇ Vector의 특성
- 연속적인 공간에서 원소를 저장/관리
- 단방향 원소 저장을 위한 container
- push_back(element) : 벡터 요소를 마지막에 추가
- pop_back(element) : 벡터의 마지막 요소를 삭제
- size() : 벡터 내의 요소수를 반환
- capacity() : 할당된 공간 크기를 리턴
- at(index) : 지정 인덱스에 있는 요소 반환
- empty() : 벡터가 비어 있으면 true 반환
- clear() : 벡터의 모든 요소 삭제
- container 에 보관된 원소에 접근할 때 반복자(iterator)를 사용한다.
▶ begin() : 첫번째 원소를 가리킨다.
▶ end() : 마지막 원소를 가리킨다.
▶ erase(iterator) : iterator가 가리키는 원소 제거
ㅇ vector의 선언
- #include <vector> 로 헤더를 포함해야 한다.
- std::vector<자료형> 이름; // using namespace std;를 사용하시면 std:: 생략이 가능
vector<int> iv(10) : 0으로 초기화 된 10개의 원소를 가지는 vector iv를 생성
vector<int> iv(10, 1) : 1로 초기화된 10개의 원소를 가지는 vector iv를 생성
예제1
#include <iostream> |
실행결과
'C++ > C++ 문법' 카테고리의 다른 글
C++ stack 영역 (0) | 2019.12.17 |
---|---|
C++ 변수의 상수화 및 메소드(함수)의 상수화 (0) | 2019.12.16 |
C++ 포인터 이해 (0) | 2019.11.30 |
C++ 클래스 상속 (0) | 2019.11.29 |
C++ 이동 생성자(move constructor), 이동 대입 연산자(Move assignment operator) (2) | 2019.11.28 |