코딩/C++

[C++]Vector

김 숨 2022. 6. 14. 15:19

Vector란?

 

C++ 표준라이브러리(Standard Template Library)에 있는 컨테이너

크기가 바뀔 수 있는 배열을 나타내는 시퀀스 컨테이너이다. 

동적으로 할당 된 배열을 사용하여 요소 저장이 가능하다.

동적으로 크기가 변하고 메모리가 연속적이기 때문에 자동으로 배열의 크기를 조절 할 수 있고 객체의 추가/삭제가 유연하게 가능하다.

다맨 끝에서만 삽입/삭제가 가능하다. 배열 기반이기 때문에 삽입 삭제가 빈번히 일어날 경우엔 비효율 적이다

 

각종 선언방법

 #include <vector> 
 
 /*vector <데이터 타입> 이름 ; 으로 vector을 선언*/
 vector <string> v_string; 
 vector <int> v_int;
 
 vector <int> v_int10(10); //크기를 지정하는 경우
 
 vector<int> v_int1(10,1); //크기 10의 벡터에 1로 초기화하고 싶은 경우
 
 vector<int> v3(v_int1); // v3는 v_int를 복사해서 생성한다.

Vector의 멤버 함수

 

vector<int> v;

v.assign(5, 2); // 2의 값으로 5개의 원소 할당. 
v.at(idx); 		// idx 번째 원소 참조(범위를 점검)
v[idx];			// idx 번째 원소를 참조(범위를 점검하지 않음)

v.front();		// 첫번째 원소를 참조
v.back();		// 마지막 원소를 참조
v.begin() 		// iterator로 접근 시 vector의 맨 첫번째 원소를 가르킴
v.end() 		// iterator로 접근 시 vector의 맨 마지막 원소의 다음을 가르킴

v.clear();		// 모든 원소를 제거  원소만 제거하고 메모리는 남아있다. (size만 줄어들고 capacity는 그대로)
v.push_back(7);	// 마지막 원소 뒤에 원소 7을 삽입
v.pop_back();	// 마지막 원소를 제거

v.insert(3, 4); // 원하는위치(3)에 데이터(4)를 삽입하고 싶은ㄱㅇ우

v.erase(iter)  //  iter(반복자)가 가리키는 원소를 제거
/*
auto iter = v.begin(); // v.begin() 위치의 데이터를 삭제하고 싶다
v.erase(iter);
*/

v.size()   	  	// 현재 벡터 v의 원소 갯수(크기)를 리턴
v.capacity() 	// 할당된 벡터의 원소 갯수(크기)를 리턴
v.resize(n) , v.resize(n,10)
v.resize(n) 	// 벡터를 원래 크기에서 N 크기로 변경
v.resize(n,10) 	// 벡터를 크기 N으로 변경하며 데이터를 10으로 초기화합니다. 
v.empty() 		// 벡터 v가 비어있는 지 확인합니다. 비어있는 경우 True 를 리턴, 비어있지 않을 경우 False를 리턴

 

 

https://life-with-coding.tistory.com/411

 

[C++][STL] Vector 기본 사용법 및 예제 활용

인트로 안녕하세요! 오늘은 C++ STL중 하나인 벡터(Vector)의 기본 함수와 예제에 대해서 알아보도록 하겠습니다. 벡터 기본함수는 push_back, pop_back, front, back, clear, begin, end, rbegin, rend, reverse..

life-with-coding.tistory.com

 

https://m.cplusplus.com/reference/vector/vector/

 

vector - C++ Reference

difference_typea signed integral type, identical to: iterator_traits ::difference_type usually the same as ptrdiff_t

m.cplusplus.com

https://en.cppreference.com/w/cpp/container/vector

 

std::vector - cppreference.com

template<     class T,     class Allocator = std::allocator > class vector; (1) (2) (since C++17) 1) std::vector is a sequence container that encapsulates dynamic size arrays. The elements are stored contiguously, which means that elements can be acces

en.cppreference.com

https://m.cplusplus.com/reference/vector/vector/