Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法在向量上迭代_C++_Vector_Most Vexing Parse - Fatal编程技术网

C++ 无法在向量上迭代

C++ 无法在向量上迭代,c++,vector,most-vexing-parse,C++,Vector,Most Vexing Parse,所以,我想从一个.txt文件中读取值,值是非常简单的四个浮点值,在同一行上。 我写道: int read_calibration () { std::ifstream input("floor.txt"); if (!input.good()) { cout << "floor info file does not exist!" << endl; return -1; } std::vector<float> d

所以,我想从一个.txt文件中读取值,值是非常简单的四个浮点值,在同一行上。 我写道:

int read_calibration () {

  std::ifstream input("floor.txt");
  if (!input.good())
  {
        cout << "floor info file does not exist!" << endl;
    return -1;
  }
  std::vector<float> data(std::istream_iterator<float>(input),
                      std::istream_iterator<float>());

  for (std::vector<float>::iterator it = data.begin() ; it != data.end(); ++it)
    std::cout << ' ' << *it;

  return 0;
}
int读取校准(){
std::ifstream输入(“floor.txt”);
如果(!input.good())
{
无法最令人烦恼的解析:-/

使用
{}

std::vector<float> data{std::istream_iterator<float>(input),
                        std::istream_iterator<float>()};
std::矢量数据{std::istream_迭代器(输入),
std::istream_iterator()};

auto data=std::vector(std::istream_迭代器(输入),
std::istreamu迭代器();
最烦人的解析:-/

使用
{}

std::vector<float> data{std::istream_iterator<float>(input),
                        std::istream_iterator<float>()};
std::矢量数据{std::istream_迭代器(输入),
std::istream_iterator()};

auto data=std::vector(std::istream_迭代器(输入),
std::istreamu迭代器();
改为说:

std::vector<float> data(std::istream_iterator<float>(input), {});
std::vector数据(std::istream_迭代器(输入),{});
您的原始代码不是定义变量,而是声明函数。

改为说:

std::vector<float> data(std::istream_iterator<float>(input), {});
std::vector数据(std::istream_迭代器(输入),{});

您的原始代码不是定义变量,而是声明一个函数。

@vsoftco:这不是最麻烦的一个;它只是一种正常的麻烦。@KerrekSB有什么不同吗?;)我认为它总是被称为“最麻烦”。对我来说是“正常的”是没有参数的,最大的是有参数的。@KerrekSB我想这正是创造术语“最烦人的解析”的确切情况@vsoftco:它不是最烦人的一个;它只是一种正常的烦人。@KerrekSB有区别吗?;)我认为它总是被称为“最烦人的”。对我来说是“正常的”是没有参数的,而most是有参数的。@KerrekSB我认为正是这种情况创造了术语“最麻烦的解析”,或者在OP不能使用C++11的情况下用括号括起一个参数。或者在OP不能使用C++11的情况下用括号括起一个参数。