2017-10-11 11 views
2

이 이중 forloop을 썼는데이 벡터의 모든 값을 출력 할 것인지를 예상했지만 작동하지 않습니다. data [i] .at (j) 중 오류가 있습니다. 아주C++ 출력 2D 벡터

vector<int> data; //it filled with some integers with x rows and y columns 

for (int i = 0; i < data.size; ++i) 
{ 
    for (int j = 0; j < col; ++j) cout << data[i].at(j) << ' '; 
     cout << endl; 
} 

이해가 안 나는 또한 data.at (I) .at (I) 중 하나를 작동하지 않습니다이 방법을 시도했습니다

for (int i = 0; i < data.size; ++i) 
{ 
    for (int j = 0; j < col; ++j) cout << data.at(i).at(j) << ' '; 
    cout << endl; 
} 

이 중 하나를 않는 오류입니다 사소한 수정 작업을? 아니면 그들은 전혀 작동하지 않습니까? 여기

+1

합니다. 2D 벡터가 없습니다. –

+0

단순히 벡터 유형을 double로 변경하면 효과가 있습니까? 그리고 만약 int 형의 vector를 사용하고 싶다면? – rrc

+0

@rrc 아니요. 제 대답을 확인해주세요. – gsamaras

답변

2

초점 :

data[i].at(j) 

언제 인덱스 위치 i에서 당신의 벡터를, 당신은 그것의 i 번째 번호를. 그 유형은 int입니다.

그런 다음 에 at()이라는 메서드를 요청하십시오. 이것은 기본 유형 int에 의해 제공되지 않습니다. 당신은 1D와 2D 벡터를 모방하려는 경우

, 당신은이 작업을 수행 할 수 있습니다 : int`s는`.at` 기능이없는`때문이다

for (int i = 0; i < data.size; ++i) 
{ 
    for (int j = 0; j < col; ++j) 
     cout << data[i + j * col] << ' '; 
    cout << endl; 
}