小编Mys*_*a89的帖子

重载>> ifstream_iterator对

我正在尝试在对上构造ifstream_iterator.我的代码如下:

typedef pair<float, int> T;

istream& operator>>(istream& stream, T& in) {
    stream >> in.first >> in.second;
    return stream;
}


int main(int argc, char **argv) {
    ifstream infile("dummy2");
    istream_iterator<T> iit(infile);
    istream_iterator<T> eos;
    while (iit != eos) {
        cout << (*iit).first << endl;
        ++iit;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我有一个虚拟文件"dummy2"如下:

"a" 4 "b" 5
Run Code Online (Sandbox Code Playgroud)

我想输出对{"a",4}和{"b",5}.

但是,我得到了令人讨厌的编译错误

In file included from /usr/include/c++/4.6/iterator:66:0,
                 from filestream.cpp:9:
/usr/include/c++/4.6/bits/stream_iterator.h: In member function ‘void std::istream_iterator<_Tp, _CharT, _Traits, _Dist>::_M_read() [with _Tp = std::pair<float, int>, _CharT = char, _Traits = std::char_traits<char>, …
Run Code Online (Sandbox Code Playgroud)

c++ iterator

8
推荐指数
1
解决办法
313
查看次数

标签 统计

c++ ×1

iterator ×1