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

时间:2021-08-17 09:45:38

以前我讨论过了在自己学习过程中经常要用到的一个特性,就是容器的输出问题,总感觉不是太方便,在学习过程中用的又非常多,我曾经在《学了模板再来看容器输出的简化》 中已经把他处理的很简单了,不过最近看了 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;

}