2차원 벡터에대해서 질문드립니다. !!

  • fly1294
    fly1294
    vector<vector<int>> a
    
        이렇게 선언된 2차원 백터 a에 값을 입력하려고 할때 
    
        for (int i = 0; i < high; ++i) {
            for (int j = 0; 1 < width; ++i) {       
                char c;
                cin >> c;
                if (c == '#') {
                    a[i][j] = 1;
                }
                else if (c == '.') {
                    a[i][j] = 0;
                    white++;
                }
            }   
        }
    
        방법과
    
    
        for (int i = 0; i < high; ++i) {
            char c;
            cin >> c;
            if (c == '#') {
                a[i].push_back(1);
            }
            else if (c == '.') {
                a[i].push_back(0);
                white++;
            }
        }
    
        방법을 써 봤는데 아예 값을 입력 하기도 전에
        vector 범위를 벗어 났다는 오류가 납니다.
    
        2차원 백터에 값을 넣는 다른 방법이 있는 건가요??

    7년 전
1개의 댓글이 있습니다.
  • 일루
    일루

    값을 넣는 부분은 문제가 없지만, 처음에 a의 크기가 0이라서 그렇습니다.

    vector> a;
    a.resize(high);

    또는

    vector> a(high);

    로 하시면 되겠습니다.


    7년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.