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