Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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++ 构造函数std::istream\u迭代器没有实例_C++_Istream_Istream Iterator - Fatal编程技术网

C++ 构造函数std::istream\u迭代器没有实例

C++ 构造函数std::istream\u迭代器没有实例,c++,istream,istream-iterator,C++,Istream,Istream Iterator,我有以下问题。我想为我的类创建一个文件构造函数。我正在使用std::copy算法,我得到了这种错误: No instance of constructor std::istream_iterator ... matches the argument list error C2440: <function-style-cast> cannot convert from std::ifsteam to std::istream_operator 没有构造函数std::istream\u

我有以下问题。我想为我的类创建一个文件构造函数。我正在使用
std::copy
算法,我得到了这种错误:

No instance of constructor std::istream_iterator ... matches the argument list
error C2440: <function-style-cast> cannot convert from std::ifsteam to std::istream_operator
没有构造函数std::istream\u迭代器的实例。。。匹配参数列表
错误C2440:无法从std::ifsteam转换为std::istream\u运算符
这是我的构造函数:

CAirport(const char* FileName, const string& name, const int& num)
{
    m_strName = name;
    m_uNum = num;
    ifstream iStream(FileName);

    if(iStream.good())
    {
        copy(istream_iterator<CAirtravel, unsigned>(iStream),
             istream_iterator<CAirtravel, unsigned>(),
             back_inserter(m_mAirtr));
    }
}
CAirport(常量字符*文件名、常量字符串和名称、常量int和num)
{
m_strName=名称;
m_uNum=num;
ifstream iStream(文件名);
if(iStream.good())
{
复制(istream_迭代器(istream),
istream_迭代器(),
背部插入器(m_mAirtr);
}
}
的构造函数期望
istream\u type
,它是
std::basic\u istream
typedef

您正在用
CharT=unsigned int
实例化
std::istream\u迭代器,它不是
std::ifstream
char
。你为什么要那样做?完全省略第二个参数,使其默认为
char

std::copy(std::istream_iterator<CAirtravel>(iStream),
          std::istream_iterator<CAirtravel>(),
          std::back_inserter(m_mAirtr));
std::copy(std::istream_迭代器(istream),
std::istream_迭代器(),
标准:背部插入器(m_mAirtr);