[C++][STL] vector

yyeahh·2020년 8월 22일
0

STL

목록 보기
3/4
post-thumbnail

#include < vector >

 < vector > 헤더파일 안에 구현되어 있음
 내부적으로 동적으로 할당 된 배열을 사용하여 요소 저장
 메모리 < 효율

▶ 변수 선언:

1. 기본형
 vector<type> 변수명;						
2. 그 외
 vector<type> 변수명(size);		: size개의 요소로 변수 구성
 vector<type> 변수명(size, value);	: 크기가 size이고, 모든 요소의 값이 value
 vector<type> 변수명(iter_1, iter_2);	: iter_1부터 iter_2까지의 요소를 동일한 순서로 배치하여 생성
 vector<type> 변수명(변수);		: "변수"의 각 요소를 동일한 순서로 복사하여 생성 

▶ Iterators:

 _.begin()	: 첫번째 요소를 가리키는 iterator를 반환
 _.end()	: 마지막 요소의 다음을 가리키는 iterator를 반환

 (std::vector<type>::iterator → vector형 iterator변수 선언)

▶ Capacity:

 _.empty()	: 해당 변수의 size가 0인지 아닌지를 알려줌 (size == 0 ? 1 : 0)
 
 _.size()	: 해당 변수의 size를 반환
 		(벡터에 보유 된 실제 객체의 수)
        
 _.resize(size)	: size개의 요소를 포함하도록 변수의 크기 조정
 		(현재의 용량보다 큰 용량이 할당 된다면 할당 된 저장 공간의 자동 재 할당이 발생)
        
 _.capacity()	: 할당 된 저장 용량의 크기 반환
 		(size와 같지 않다)

▶ Access:

 _[i]		: 변수의 위치 i에 있는 요소에 대한 참조를 반환 
 _.at(i)	: 변수의 위치 i에 있는 요소에 대한 참조를 반환
 
 _.front()	: 변수의 첫 번째 요소에 대한 참조를 반환
 _.back()	: 변수의 마지막 요소에 대한 참조를 반환

▶ Insert & Erase:

1. 삽입
 _.push_back(value)	: 현재 마지막 요소 뒤에 새 요소를 추가
 			(변수의 크기가 1씩 증가, 새 벡터 크기가 현재 벡터의 capacity를 초과하는 경우에만 저장 공간이 자동으로 재 할당됨)
            
 _.insert()	: 해당 변수에 지정된 요소 이전에 새로운 요소를 삽입하고, 삽입 된 요소 수만큼 변수의 크기를 늘림
 		(지정된 위치에 요소를 삽입하기에 뒤에 있던 모든 요소들이 재배치 됨 → 매우 비효율적)
        	(push_back과 마찬가지로 용량이 초과할 경우 저장 공간의 재 할당이 이뤄짐)
        
         |insert(iter, value)		: iter 앞에 value 추가
         |insert(iter, iter_1, iter_2)	: iter앞에 iter_1부터 iter_2까지 추가
       
 
 _.swap(변수)	: 해당 변수의 내용을 동일한 타입의 "변수"의 내용과 교환
2. 삭제
 _.pop_back()	: 마지막 요소를 제거하고, 크기를 줄임
 
 _.erase()	: 해당 요소를 제거하고, 제거된 수만큼 변수의 크기 줄어듬
 		(벡터 끝 이외의 위치에 있는 요소를 지우면 지운 후에 변수의 모든 요소를 재배치함)
 	 |erase(iter)		: iter가 가리키는 요소 제거
         |erase(iter_1, iter_2)	: iter_1부터 iter_2까지의 모든 요소 제거
        
        
 _.clear()	: 변수의 모든 요소를 제거하고 크기를 0으로 만듬

0개의 댓글