九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

关于容器输出的进一步优化

以前我讨论过了在自己学习过程中经常要用到的一个特性,就是容器的输出问题,总感觉不是太方便,在学习过程中用的又非常多,我曾经在《学了模板再来看容器输出的简化》 中已经把他处理的很简单了,不过最近看了 TC++PL受了点启发,又将程序进一步改进,主要的好处是更符合标准库容器的使用习惯,以首尾两个迭代器为输入,而且对普通的数组也可以使用,这样最大的方便之处在于可以接受一个范围的输出了。不过比起以前那种直接传递容器的引用来说,普通的输出整个容器使用上还是复杂一点。

原程序如下:

    template <typename T>

    void printCon(T begin, T last)  //改进后

    {

       for(; begin != last; ++begin)

           cout<<*begin<<" ";

       cout<<endl;

    }


一个使用的例子:

using namespace std;

int main()

{

    char cstr[4] = {'a', 'b', 'c', 'd'};

    vector<char> cvec(5, 'a');

    //I put printCon in the namespace of myself

    myself::printCon(cstr, cstr+4);

 myself::printCon(cvec.begin(), cvec.end() );

    return 0;

}

 

分类:  C++ 
标签:  C++ 

Posted By 九天雁翎 at 九天雁翎的博客 on 2007年07月06日

前一篇: 和实现有关的各类型大小简易输出模版 后一篇: 可恶的Cpp(c语言预处理器),windows.h,导致程序莫名错误