2014-02-27 2 views
0

아주 기본적인 질문이지만 출력 방법을 이해하는 데 문제가 있습니다. 플로트 벡터 벡터를 출력하는 방법은 무엇입니까?

은 내가

vector< vector<float> > distance_table; 

그것은 그것의 숫자의 모든 종류로 가득합니다. 이제 저는 이것을 출력하고 싶습니다.

vector< vector<float> > :: iterator row; 
    vector<float> ::iterator col; 
    for (row = distance_table.begin(); row !=distance_table.end(); row++) 
    { 
     for (col = row->begin(); col !=row->end(); col++) 
     { 
      cout << distance_table[row][col] <<endl; 

     } 

    } 

distance_table [행] [COL] 작동하지 않습니다 : 여기에

는 내가 가지고있는 코드입니다. 분명히 올바른 구문이 아닙니다. 올바른 구문은 무엇입니까?

+0

'* col'이됩니다. – 0x499602D2

답변

4

이터레이터를 사용하여 인덱싱 할 수 없습니다. 당신은 정수를 사용하거나 iterators를 사용하지만 둘 다 사용하지는 않습니다. 두 번째 이터레이터를 참조 해제하여 특정 벡터 내의 값을 얻을 수 있습니다.

vector< vector<float> > :: iterator row; 
vector<float> ::iterator col; 
for (row = distance_table.begin(); row !=distance_table.end(); row++) 
{ 
    for (col = row->begin(); col !=row->end(); col++) 
    { 
     cout << *col << endl; 
    } 

} 
2

col은 내부 벡터의 반복자, 그래서 당신은 단지 값을 얻기 위해이를 역 참조해야합니다

cout << *col << endl; 
1

가장 간단한 방법은 문을 기반으로 범위를 사용하는 것입니다. 예를

다음 대신 당신이 첨자 연산자를 사용하려는 경우 벡터의 요소에 대한 인덱스 액세스를 사용한다 이터레이터 당신 코드로
for (const std::vector<double> &v : distance_table) 
{ 
    for (double x : v) std::cout << x << ' '; 
    std::cout << std::endl; 
} 

하십시오. 당신이 원하는 것을 할 수있는 예를

typedef std::vector<std::vector<double>>::size_type size_type; 

for (size_type i = 0; i < distance_table.size(); i++) 
{ 
    for (size_type j = 0; j < distance_table[i].size(); j++) 
    { 
     std::cout << distance_table[i][j] << ' '; 
    } 
    std::cout << std::endl; 
} 
0

한 가지 방법에 대한

. 이 방법은 반복자를 사용하는 것이 좋지만 반복기를 사용하지 않는다는 점에 유의하십시오.

#include <vector> 
#include <iostream> 

using namespace std; 

int main(int argc, char **argv) 
{ 
    vector< vector<float> > distance_table; 

    vector<float> a {0, 1}; 

    distance_table.push_back(a); 
    for (auto i = 0; i <distance_table.size(); i++) 
    { 
     for (auto j = 0; j <distance_table[i].size(); j++) 
     { 
      cout << distance_table[i][j] << endl; 

     }  
    } 
} 
관련 문제