我有以下C代码:
typedef istream_iterator<string> isi; // (1) vector<string> lineas(isi(cin),isi()); // (2) //vector<string> lineas; //copy(isi(cin),isi(),back_inserter(lineas)); typedef vector<string>::iterator vci; for (vci it = lineas.begin(); it != lineas.end(); ++it) cout << *it << endl;
但是,我在编译时遇到错误:
test.cpp: In function 'int main(int,char**)': test.cpp:16: error: request for member 'begin' in 'lineas',which is of non-class type 'std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::allocator<char> > > >(main(int,char**)::isi,main(int,char**)::isi (*)())' test.cpp:16: error: request for member 'end' in 'lineas',char**)::isi (*)())'
但是,如果我用(2)替换(1),它就会编译.
我正在使用g 4.4.0
怎么了?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。