ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.