如何输出漂浮物矢量的矢量?

非常基本的问题,但我很难理解如何输出这个。如何输出漂浮物矢量的矢量?

我有一个

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]。这显然不是正确的语法。什么是正确的语法?

回答:

您不能使用迭代器进行索引。你要么使用整数,要么使用迭代器,但不能同时使用整数。您可以取消引用第二个迭代器以获取特定向量内的值。

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;

}

}

回答:

col是在内部向量迭代器,所以你只需要取消对它的引用来获取值:

cout << *col << endl; 

回答:

最简单的方法是使用基于for语句的范围内。例如

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;

}

回答:

一种方法做你想要什么。请注意,这种方法不使用迭代器,尽管迭代器的使用同样好。

#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;

}

}

}

以上是 如何输出漂浮物矢量的矢量? 的全部内容, 来源链接: utcz.com/qa/262401.html

回到顶部