注册 登录
编程论坛 C++教室

迭代器问题

q1826050194 发布于 2012-07-10 20:09, 718 次点击
#include<algorithm>
#include<iostream>
#include<iterator>

template<typename Iter>
void print(Iter first,Iter last,const char* nm="", const char* seq="\n",std::ostream& os=std::cout){
    if(nm!=0&&nm!='\0')
    os<<nm<<":"<<seq;
    typedef typename iterator_traits<Iter>::value_type T;
    copy(first,last,ostream_iterator<T>(cout,seq));
    os<<std::endl;
}

--------------------配置: mingw5 - LIB Release, 编译器类型: MinGW--------------------

检查文件依赖性...
正在编译 C:\Users\zjy\Documents\C-Free\Temp\未命名15.cpp...
[Error] C:\Users\zjy\Documents\C-Free\Temp\未命名15.cpp:9: error: expected nested-name-specifier before "iterator_traits"
[Error] C:\Users\zjy\Documents\C-Free\Temp\未命名15.cpp:9: error: expected initializer before '<' token
[Error] C:\Users\zjy\Documents\C-Free\Temp\未命名15.cpp:10: error: `ostream_iterator' was not declared in this scope
[Error] C:\Users\zjy\Documents\C-Free\Temp\未命名15.cpp:10: error: `T' was not declared in this scope
[Error] C:\Users\zjy\Documents\C-Free\Temp\未命名15.cpp:10: error: `cout' was not declared in this scope
构建中止 未命名15: 5 个错误

求帮助...
2 回复
#2
ZRTan2012-07-11 00:06
惨了,表示看不懂~!
#3
rjsp2012-07-11 12:08
稀里糊涂的人不适合学编程,因为那需要严谨

template<typename Iter>
void print( Iter first, Iter last, const char* nm="", const char* seq="\n", std::ostream& os=std::cout )
{
    if( nm!=0 && nm[0]!='\0' )
        os << nm << ":" << seq;

    typedef typename std::iterator_traits<Iter>::value_type T;
    copy( first, last, std::ostream_iterator<T>(os,seq));
    os << std::endl;
}
1