This question already has answers here:
error C2228: left of '.size' must have class/struct/union
(2个答案)
4年前关闭。
因此,我想从.txt文件中读取值,这些值是同一行上非常简单的四个float值。
我这样写:
当我建立它时,我得到这个错误:
我正在使用gcc版本4.8.4在Ubuntu 14.04上运行
您的原始代码不是定义变量,而是声明一个函数。
(2个答案)
4年前关闭。
因此,我想从.txt文件中读取值,这些值是同一行上非常简单的四个float值。
我这样写:
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;
}
当我建立它时,我得到这个错误:
error: request for member ‘begin’ in ‘data’, which is of non-class type ‘std::vector<float>(std::istream_iterator<float>, std::istream_iterator<float> (*)())’
for (std::vector<float>::iterator it = data.begin() ; it != data.end(); ++it)
我正在使用gcc版本4.8.4在Ubuntu 14.04上运行
最佳答案
改为这样说:
std::vector<float> data(std::istream_iterator<float>(input), {});
您的原始代码不是定义变量,而是声明一个函数。
关于c++ - 不能在 vector 上迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35214576/
10-09 17:13