如何输出漂浮物矢量的矢量?
非常基本的问题,但我很难理解如何输出这个。如何输出漂浮物矢量的矢量?
我有一个
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