2017-05-04 42 views
0

我试图创建一个向量来输入从.txt文件的一些数据,但我得到的错误:在我的项目中包含Eigen将Eingen :: DenseIndex的标准int重新定义 - 如何使用正常整数?

no operator ">>" matches these operands 

operand types are: std::ifstream >> std::vector<Eigen::DenseIndex, std::allocator<Eigen::DenseIndex>> 

我的代码是:

dataIn.open("data.txt"); 
vector<int> hnew; 
dataIn >> hnew; 
dataIn.close(); 

data.txt中仅仅是一个空间分隔ints长的传染媒介。我能做什么?

+0

解析文件并手动构建矢量? – chris

+0

无视我原来的问题,那么,我将如何创建一个'vector ',其中数据类型实际上是标准的C++ int,而不是Eigen所做的一些重新定义? – asdfghjkl

回答

2

Eigen :: DenseIndex只是int的一个类型别名。这里不是问题。

编译器警告你没有过载

template <typename T, typename A> 
std::istream & operator >>(std::istream &, std::vector<T. A> &) 

也没有一个默认提供的。您可以使用istream_iterator构建您的hnew,如下所示:

dataIn.open("data.txt"); 
vector<int> hnew(istream_iterator<int>(dataIn), istream_iterator<int>()); 
+0

谢谢。今天我了解了类型别名。但是,我在'istream_iterator'上得到了一个错误,使用你写的:“类模板的参数列表”std :: istream_iterator“缺少”。 我有#include asdfghjkl

+0

对不起,我的第一个版本缺少来自'istream_iterator '的'',现在已修复 – Caleth

相关问题