九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- 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,导致程序莫名错误