코딩뚠뚠

[개념정리] vector container 본문

알고리즘 문제풀이/개념정리

[개념정리] vector container

로디네로 2020. 12. 26. 05:21
반응형

vector 란

C++ STL vector는 list계열의 container 종류이다.

자료구조의 스택과 구조가 비슷하다.

vector를 생성하면 메모리 heap에 생성되며 동적할당 된다.


vector 사용

선언 및 초기화

vector<자료형> 변수명

vector<자료형> 변수명(숫자) // 숫자만큼 벡터생성 후 0으로 초기화

vector<자료형> 변수명 = {변수1, 변수2..} //벡터생성 후 오른쪽 변수값으로 초기화

vector<자료형> q[] = {{변수1, 변수2}, {변수3, 변수4}) //2차원벡터 선언 및 초기화

vector<vector<자료형>>변수명 //2차원 벡터 생성

 

Iterators

우선 vector<int>v; 로 선언한다.

v.begin() //벡터 시작점의 주소값 반환

v.end() //벡터 끝부분+1 주소값 반환

v.[i] //벡터의 i 번째 요소 접근

v.front() //벡터의 첫번째 요소에 접근

v.back() //벡터의 마지막 요소 접근

v.push_back() //벡터의 마지막 부분에 새로운 요소를 추가

v.pop_back() //벡터의 마지막 부분을 제거

v.insert(삽입위치 주소값, 변수값) //원하는 위치에 삽입

v.erase(삭제위치) or v.erase(시작위치,끝위치) // 중간 인자를 빼낸다. 나머지는 앞당겨진다. 기본적으로 stack 구조여서 pop_back 쓰지만 erase 도 쓰인다.

v.clear() //벡터의 모든 요소를 지운다.

v.size() //벡터의 크기 - 현재 할당된 크기

v.capacity() //벡터의 크기 - 벡터의 최대 할당 크기

v.empty() //벡터가 빈공간이면 true, 값 있다면 false

vector 를 sort할 때 compare를 활용하는 방법은 아래에 포스팅해 두었다.

dbstndi6316.tistory.com/22

 

[개념정리] STL라이브러리 - sort()2

풀이 일시 : 2020-08-02 ​ 개념 : sort()의 활용방안 part2 ​ 활용1 : 클래스 대신 Pair 라이브러리 사용하기 #include #include #include using namespace std; int main() { vector >v; //vector pair 선언 v...

dbstndi6316.tistory.com


주의점

v.insert 나 v.erase 사용할때 한칸한칸 일일이 이동시켜 비효율적이고 v.capacity 의 값을 넘어선다면 reallocate도 일어나므로 메모리 오버헤드 및 성능저하를 야기할 수 있다. 따라서 삽입 삭제가 빈번하다면 list나 deque권장

pair / struct / tuple 과 같이 사용하는 방법은 아래의 링크에 같이 설명해놓았다.

dbstndi6316.tistory.com/30

 

[개념정리] deque container

deque container란 deque는 vector container의 단점을 보완하기 위해서 만들어진 container이다. vector와 마찬가지로 list구조. vector는 새로운 원소가 추가될 때 메모리 재할당 후 이전원소를 복사하는 방식으.

dbstndi6316.tistory.com

 

 

반응형

'알고리즘 문제풀이 > 개념정리' 카테고리의 다른 글

[개념정리] queue  (0) 2020.12.26
[개념정리] stack  (0) 2020.12.26
[개념정리] tuple  (0) 2020.12.26
[개념정리] Pair  (0) 2020.12.26
[개념정리] STL라이브러리 - sort()2  (0) 2020.12.26