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 |
---|