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

本文介绍了一种改进后的容器输出方法,该方法通过迭代器实现,不仅适用于标准库容器,也适用于普通数组。改进后的程序更加符合标准库容器的使用习惯,并能够接受一个范围的输出。

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值