본문 바로가기
Lang/C++

[C++] STL 1차원 vector 사용법

by 상똥 2023. 2. 2.

1. STL vector

(1) vector를 사용하기 위해서는 헤더파일을 추가해야 한다. : #include <vector> 

(2) vector의 선언은 다음과 같다 : vector<타입> 벡터명;

#include <stdio.h>
#include <vector>

using namespace std;

int main(){
	vector<int> V;
}

 

2. 벡터 값 할당

(1) 미리 벡터의 크기를 정한 후 값을 0으로 설정하는 방식 : vector<int> V(크기)

(2) 미리 벡터의 크기와 그 값을 설정하는 방식 : vector V(크기, 값)

(3) 벡터의 크기만 설정 후 fill을 통해 

(4) 벡터의 앞부분부터 값을 직접 입력하는 방식 : 벡터명.push_back(값)

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<int> V1(10);	//크기를 10, 모든 값을 0으로 설정

	vector<int> V2(10, 1);	//크기를 10, 모든 값을 1로 설정

	vector<int> V3(10);	//크기를 10으로 설정한 후
	fill(V3.begin(), V3.end(), 2);	//처음부터 끝까지 값을 2로 설정

	vector<int> V4;	//벡터만 선언 후
	for (int i = 0; i < 10; i++)
		V4.push_back(i);	//값을 직접 입력


	cout << "V1 : ";
	for (int i = 0; i < 10; i++)
		cout << V1[i] << " ";
	cout << endl << "V2 : ";
	for (int i = 0; i < 10; i++)
		cout << V2[i] << " ";
	cout << endl << "V3 : ";
	for (int i = 0; i < 10; i++)
		cout << V3[i] << " ";
	cout << endl << "V4 : ";
	for (int i = 0; i < 10; i++)
		cout << V4[i] << " ";

}

결과

3. 벡터 값 삭제

(1) 뒤에서부터 원소를 하나씩 삭제 : 벡터명.pop_back();

(2) 벡터값 전체 삭제 : 벡터명.clear();

#include <iostream>
#include <vector>

using namespace std;

int main() {
	vector<int> V;
	for (int i = 0; i < 10; i++)
		V.push_back(i);

	cout << endl << "V : ";
	for (int i = 0; i < 10; i++)
		cout << V[i] << " ";

	V.pop_back();
	cout << endl << "V pop(1): ";
	for (int i = 0; i < V.size(); i++)
		cout << V[i] << " ";

	V.pop_back();
	cout << endl << "V pop(2): ";
	for (int i = 0; i < V.size(); i++)
		cout << V[i] << " ";

	V.pop_back();
	cout << endl << "V pop(3): ";
	for (int i = 0; i < V.size(); i++)
		cout << V[i] << " ";

	V.clear();
	cout << endl << "V clear" << endl;
	cout << "V size : " << V.size();
}

결과

 

4. STL을 활용한 벡터의 정렬

(1) 알고리즘 헤더파일을 추가해야 한다 : #include <algorithm>

(2) 벡터의 오름차순 정렬은 다음과 같다 : sort(벡터명.정렬시작위치(), 벡터명.정렬끝위치());

(3) 벡터의 내림차순 정렬은 다음과 같다 : reverse(벡터명.정렬시작위치(), 벡터명.정렬끝위치());

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
	vector<int> V;
	V.push_back(5);
	V.push_back(1);
	V.push_back(3);
	V.push_back(4);
	V.push_back(2);

	cout << "V : ";
	for (int i = 0; i < V.size(); i++)
		cout << V[i] << " ";

	//벡터를 오름차순으로 정렬
	sort(V.begin(), V.end());
	cout << endl << "V 오름차순" << endl;
	for (int i = 0; i < V.size(); i++)
		cout << V[i] << " ";

	reverse(V.begin(), V.end());
	cout << endl << "V 내림차순" << endl;
	for (int i = 0; i < V.size(); i++)
		cout << V[i] << " ";
}

결과

 

'Lang > C++' 카테고리의 다른 글

[C++] STL 2차원 vector 사용법  (0) 2023.02.28