-
[C++] 2차원 vector 생성 및 초기화C++ 2024. 1. 8. 21:35
알고리즘 문제를 풀면서 2차원 vector 입력받는 것을 항상 까먹는다,,,
이참에 정리해둘까 싶어서 작성해보는 글 !
vector를 이용한 2차원 배열을 만드는 3가지 방법
#include<bits/stdc++.h> using namespace std; vector<vector<int>> v; vector<vector<int>> v2(10, vector<int>(10, 0)); vector<int> v3[10]; int main(){ for(int i = 0; i < 10; i++){ vector<int> temp; v.push_back(temp); } return 0; }
1. v는 vector안의 vector가 들어가 있는 2차원 배열 타입을 선언, 그 이후 v에 temp라는 vector를 push_back해서 2차원 배열
2. v2는 10 * 10 짜리 크기의 2차원배열을 바로 만들고, 0으로 초기화까지
3. v3는 10개 짜리 배열 선언
2차원 배열 입력받기
입력받을 때, 아래처럼 초기화 시켜두고, 2차원 배열처럼 입력 받는 방식으로 사용하는 것이 편한 것 같다.
vector<vector<int>> a(n, vector<int>(n));
n*n 배열인데, vector<int>(n)은 크기가 n이고 초기값이 0으로 설정된 1차원 벡터를 생성하는 것이고,
vector<vector<int>> a(n, vector<int>(n))는 행이 n개 이고, 각 행이 vector<int>(n)으로 초기화된 2차원 벡터를 생성하는 것이다.
아래는 예시이다. 이런식으로 2차원 배열을 초기화, 생성후에, 일반 배열처럼 사용하면 굿굿!
vector<vector<int>> a(n, vector<int>(n)); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin >> a[i][j]; } }
'C++' 카테고리의 다른 글
[C++] 2장 실습문제 (0) 2022.04.17 [C++] 1장 실습문제 (0) 2022.04.17 [C++] CP 13 (0) 2022.04.17 [C++] CP 11, 12 (0) 2022.04.17 [C++] CP 09, 10 (0) 2022.04.14