1. 2차원 벡터 선언
(1) vector를 사용하기 위해서는 헤더파일을 추가해야 한다. : #include <vector>
(2) vector의 선언은 다음과 같다 : vector<vetor<타입>> 벡터명;
(3) vector의 행열 크기를 결정하며 선언하기 : vector<vector<타입>> 벡터명(행 길이, vector<타입>(열 길이));
//이때, 값은 0
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> V1;
vector<vector<int>> V2(3, vector<int>(5));
}
2. 벡터 값 할당
(1) 먼저 1차원 벡터를 선언한 후 2차원 벡터에 (행마다) 삽입하기 : 2차원벡터명.push_back(1차원벡터명);
(2) 이미 사이즈가 정해진 2차원 벡터에 값 채우기 : fill(벡터명[행].시작부분(), 벡터명[행].끝부분(), 채울 값);
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> V1;
vector<vector<int>> V2(3, vector<int>(5));
//1차원 벡터를 활용한 2차원벡터 값 할당
for (int i = 0; i < 3; i++) {
vector<int> temp;
for (int j = 1; j < 6; j++) {
temp.push_back(i * 5 + j);
}
V1.push_back(temp);
}
//이미 크기가 정해진 2차원 벡터에 행마다 fill
for (int i = 0; i < 3; i++)
fill(V2[i].begin(), V2[i].end(), 1);
cout << "V1" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
cout.width(3);
cout << V1[i][j];
}
cout << endl;
}
cout << "V2" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
cout.width(3);
cout << V2[i][j];
}
cout << endl;
}
}
3. 벡터 사이즈 확인하기
(1) 행 개수 확인 : 벡터명.size();
(2) 열 개수 확인 : 벡터명[행].size();
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> V1;
for (int i = 0; i < 3; i++) {
vector<int> temp;
for (int j = 1; j < 6; j++) {
temp.push_back(i * 5 + j);
}
V1.push_back(temp);
}
cout << V1.size() << endl; //행 개수 출력
cout << V1[0].size(); //열 개수 출력
}
결과
4. 벡터 값 지우기
(1) 행별로 원소 지우기(맨 뒤부터) : 벡터명[행].pop_back();
(2) 행 원소 전부 지우기 : 벡터명[행].clear();
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> V1;
for (int i = 0; i < 3; i++) {
vector<int> temp;
for (int j = 1; j < 6; j++) {
temp.push_back(i * 5 + j);
}
V1.push_back(temp);
}
cout << "V1[0] size : " << V1.size() << endl;
V1[0].pop_back(); //0번째 행의 맨 뒤 원소 지우기
cout << "V1[0] popback!" << endl << "V1[0] size : " << V1[0].size() << endl;
V1[2].clear(); //0번째 행 전체 지우기
cout << "V1[0] clear!" << endl << "V1[0] size : " << V1[2].size();
}
결과
5. 벡터 값 정렬
'Lang > C++' 카테고리의 다른 글
[C++] STL 1차원 vector 사용법 (1) | 2023.02.02 |
---|