Vector는 C++ 표준 라이브러리(Standard Template Library)에 있는 시퀀스 컨테이너입니다.
헤더로는 #include <vector> 을 써줘야 사용가능합니다.
목차
Vector의 초기화
vector<자료형> 변수명 | 벡터 생성 |
vector<자료형> 변수명(숫자) | 숫자만큼 벡터 생성 후 0으로 초기화 |
vector<자료형> 변수명 = { 변수1, 변수2, 변수3... } | 벡터 생성 후 오른쪽 변수 값으로 초기화 |
vector<자료형> 변수명[] = {, } | 벡터 배열(2차원 백터)선언 및 초기화(열은 고정, 행은 가변) |
vector<vector<자료형> 변수명 | 2차원 벡터 생성(열과 행 모두 가변) |
vector<자료형>변수명.assign(범위, 초기화할 값) | 벡터의 범위 내에서 해당 값으로 초기화 |
vector의 at , [] 에 대한 차이
둘다 요소에 대한 접근을 하지만 at은 인덱스 범위를 보고 예외처리를 발생시켜주고 (out_of_range)
[] (operator [] )는 범위검사를 하지않아 예외처리를 하지않습니다.
반복적으로 사용하거나 접근할때의 효율성을 생각하여 [] 를 많이 사용합니다.
예제 코드
#include <vector> // STL vector 헤더
vector<int> v; // int형타입 벡터 생성
vector<char> v; // char형타입 벡터 생성
vector<float> v; // float형타입 벡터 생성
vector<int> v = {1, 2, 3}; // int형타입 벡터 생성 후 1, 2, 3 으로 초기화
vector<int> v[10]; // int형타입 벡터 배열 생성 (크기 : 10)
vector<int> v(5); // 5개의 원소를 0으로 초기화
vector<int> v(5, 2); // 5개의 원소를 2로 초기화
vector<int> v2(v); // 벡터 v를 복사하여 벡터v2 생성
Vector element access (벡터의 요소 접근)
v.at(i) | 벡터의 i번째 요소 접근 (범위 검사함) |
v.[i] (operator []) | 벡터의 i번째 요소 접근 (범위 검사 안함) |
v.front() | 벡터의 첫번째 요소 접근 |
v.back() | 벡터의 마지막 요소 접근 |
Vector 에 요소 삽입
v.push_back() | 벡터의 마지막 부분에 새로운 요소 추가 |
v.pop_back() | 벡터의 마지막 부분 제거 |
v.insert(삽입할 위치의 주소 값, 변수 값) | 사용자가 원하는 위치에 요소 삽입 |
v.emplace(삽입할 위치의 주소 값, 변수 값) | 사용자가 원하는 위치에 요소 삽입 (move로 인해 복사생성자 X) |
v.emplace_back() | 벡터의 마지막 부분에 새로운 요소 추가 (move로 인해 복사생성자 X) |
v.erase(삭제할 위치) or v.erase(시작위치, 끝위치) | 사용자가 원하는 index값의 요소를 지운다. |
v.clear() | 벡터의 모든 요소를 지운다. (return size = 0) |
v.resize(수정 값) | 벡터의 사이즈를 조정한다. (범위 초과시 0으로 초기화) |
v.swap(백터 변수) | 벡터와 벡터를 Swap (바꿔준다.) |
Vector capacity (벡터 용량)
v.empty() | 벡터가 빈공간일때 true 반환 , 빈공간이 아닐때 false 반환 |
v.size() | 벡터의 크기 반환 |
v.capacity() | heap에 할당된 벡터의 최대크기 반환 |
v.max_size() | 벡터가 system에서 만들어 질 수 있는 최대 크기 반환 |
v.reserve(숫자) | 벡터의 크기 설정 |
v.shrink_to_fit() | capacity의 크기를 벡터의 실제 크기에 맞춤 |
'알고리즘' 카테고리의 다른 글
프로그래머스_코딩테스트 연습_정렬_K번째수 (0) | 2021.07.06 |
---|---|
프로그래머스_코딩테스트 연습_DFS_타겟 넘버 (0) | 2021.07.05 |
프로그래머스_코딩테스트 연습_완전탐색_카펫 (0) | 2021.07.04 |
프로그래머스_코딩테스트 연습_완전탐색_소수찾기 (0) | 2021.07.02 |
프로그래머스_코딩테스트 연습_완전탐색_모의고사 (0) | 2021.07.01 |
댓글