vector 란?

- 동적 배열구조를 C++로 구현한 것 (가변적 배열)

- 맨 끝에서만 삽입, 삭제 가능

- 크기가 동적으로 변하고 메모리가 연속적

- 속도적인 측면에서는 느리다.

 

vector 사용법

헤더

- #include<vector>

 

- 선언 방법

vector<데이터 타입> 벡터 이름;
vector<데이터 타입> 벡터 이름(크기);
vector<데이터 타입> 벡터 이름(크기, 초기화 상수);

vector 선언방법

- 삽입, 삭제

v.push_back(데이터); 데이터를 맨 끝에 삽입
v.pop_back();   데이터 맨 끝을 삭제
v.insert(데이터위치, 데이터); 삽입하고 싶은 위치에 데이터 삽입

삽입 삭제

- 원소 참조

v[i];    i 번째 원소 참조
v.at();   i 번째 원소 참조
v.front(); 벡터의 첫번째 원소를 참조
v.back();   벡터의 마지막 원소를 참조 
v.begin(); iterator 사용시 벡터의 첫번째 데이터 위치를 가르킴
v.end();   iterator 사용시 벡터의 마지막 데이터 위치를 가르킴

iterator 사용 begin() end()

- 크기 변경

v.size() 벡터 원소 갯수를 반환
v.capacity() 할당된 벡터의 원소 갯수 반환
v.resize(n) 벡터를 n 크기로 변경
v.resize(n, m) 벡터를 n 크기로 변경 후 데이터를 m으로 초기화
v.empty() 벡터가 비어 있으면 true 반환 아닐 시 false 반환

 

#include<iostream>
#include<vector>
using namespace std;

int main()
{
	vector<int> v;
	vector<int> v1(10);
	vector<int> v2(10, 3);

	for (auto i : v1)
		cout << i<<", ";
	cout << endl;
	/*for (auto i : v2)
		cout << i << ", ";*/
	
	cout << "삽입 삭제" << endl;
	v.push_back(4);
	v.push_back(5);
	v.push_back(3);
	cout << "v[1]: ";
	cout << v[1] << endl;
	cout << "v.at(1): ";
	cout << v.at(1) << endl;
	cout << "v.front(): ";
	cout << v.front() << endl;
	cout << "v.back(): ";
	cout << v.back() << endl;
	while (!v.empty())
	{
		cout << v.back() << endl;
		v.pop_back();
	}
	vector<int>::iterator iter;
	for (iter = v2.begin(); iter < v2.end(); iter++)
		cout << *iter;

}

'프로그래밍 공부 > STL' 카테고리의 다른 글

문자열 처리함수 c_str()  (0) 2022.02.27
C++ STL set & multiset  (0) 2022.02.17
C++ STL deque란?  (0) 2022.02.17
C++ STL list 란?  (0) 2022.02.15
C++ STL 이란?  (0) 2022.02.12

+ Recent posts