본문 바로가기

ALGORITHM/코딩테스트를 위한 자료구조와 알고리즘 with c++ 정리

std::vector-가변 크기 배열

벡터를 초기화하는 방법

#include <iostream>
#include <vector>

int main()
{
	// 크기가 0인 벡터 선언
	std::vector<int> vec1;
	
	// 지정한 초깃값으로 이루어진 크기가 5인 벡터 선언
	std::vector<int> vec2 = { 1,2,3,4,5 };

	// 크기가 10인 벡터 선언
	std::vector<int> vec3(10);

	// 크기가 10이고, 모든 원소가 5로 초기화된 벡터 선언
	std::vector<int> vec4(10, 5);

	return 0;
}

 

벡터에 새로운 원소를 추가하려면 push_back() 또는 insert() 함수를 사용합니다.

push_back()함수는 벡터의 맨마지막에 새로운 원소를 추가합니다.

insert()함수는 삽입할 위치를 나타내는 반복자를 첫 번째 인자로 받음으로써 원하는 위치에 원소를 추가할 수 있습니다.

#include <iostream>
#include <vector>
using namespace std;
int main()
{	
	std::vector<int> vec;
	vec.push_back(1);
	vec.push_back(2);
	vec.insert(vec.begin(), 0);
	vec.insert(find(vec.begin(), vec.end(), 1), 4);

	for (int i = 0; i < vec.size(); i++)
	{
		cout << vec[i] << " ";
	}

	return 0;
}

 

 

벡터 원소 삭제하는 방법

#include <iostream>
#include <vector>
using namespace std;
int main()
{	
	std::vector<int> vec = { 0,1,2,3,4,5,6,7,8,9 };

	// 맨 마지막 원소 하나를 제거합니다: {0,1,2,3,4,5,6,7,8};
	vec.pop_back();

	// 맨 처음 원소를 제거합니다: {1,2,3,4,5,6,7,8}
	vec.erase(vec.begin());

	// 1번째 원소부터 4번째 앞 원소까지 제거합니다: {1,5,6,7,8}
	vec.erase(vec.begin() + 1, vec.begin() + 4);

	return 0;
}

 

std::vector 멤버 함수

clear():모든 원소를 제거하여 완전히 비어 있는 벡터로 만듭니다.

reserve(capacity):벡터에서 사용할 용량을 지정합니다.

shrink_to_fit():여분의 메모리 공간을 해제하는 용도로 사용됩니다.