关于STL容器输出的更进一步简化,便于平时学习使用
2007-10-16 05:24
375 查看
以前我在实际学习过程中因为没有好的容器输出方法而苦恼,目前知道的最简单的方法也可能就是如下方式了:
copy(container.begin(),container.end(),ostream(cout," ");
当然,其实也不是怎么太复杂,只是最开始不怎么知道。到今天,已经知道可以一行代码就输出容器了,我还优化什么啊?看了就知道了。
//以容器为输入的简化函数,第二参数为前置的string,默认为空
template <class T>
void printCon(const T &orig,const std::string str ="")
{
std::cout <<str;
typename T::const_iterator it;
for(it = orig.begin();it != orig.end(); ++it)
std::cout << *it <<" ";
cout<<endl;
}
//重载的容器输出函数,以迭代器为输入,方便输出容器的一部份甚至数组,
//第三参数为前置的string,默认为空
template <class T>
void printCon(T itBegin, T itEnd, const std::string str ="")
{
std::cout <<str;
for( NULL; itBegin != itEnd; ++itBegin)
std::cout << *itBegin <<" ";
cout<<endl;
}
竟然是要简单,所以当然应该提供只需要一个容器参数就可以输出的方法,但是却还想要保留输出范围的能力,怎么办呢?重载。。。。
另外,输出的时候前面一般加说明,这里以一个默认为空的参数加进来,这样更加方便了,另外,我用const std::string而不用const char*是为了应用范围更广泛,因为有char* 到 string的默认构造函数,可以自动转换,反之则不行,不知道这样有没有副作用,高手提醒之。还有,因为常用,我把它放到myself名字空间下。这里未与列出。
copy(container.begin(),container.end(),ostream(cout," ");
当然,其实也不是怎么太复杂,只是最开始不怎么知道。到今天,已经知道可以一行代码就输出容器了,我还优化什么啊?看了就知道了。
//以容器为输入的简化函数,第二参数为前置的string,默认为空
template <class T>
void printCon(const T &orig,const std::string str ="")
{
std::cout <<str;
typename T::const_iterator it;
for(it = orig.begin();it != orig.end(); ++it)
std::cout << *it <<" ";
cout<<endl;
}
//重载的容器输出函数,以迭代器为输入,方便输出容器的一部份甚至数组,
//第三参数为前置的string,默认为空
template <class T>
void printCon(T itBegin, T itEnd, const std::string str ="")
{
std::cout <<str;
for( NULL; itBegin != itEnd; ++itBegin)
std::cout << *itBegin <<" ";
cout<<endl;
}
竟然是要简单,所以当然应该提供只需要一个容器参数就可以输出的方法,但是却还想要保留输出范围的能力,怎么办呢?重载。。。。
另外,输出的时候前面一般加说明,这里以一个默认为空的参数加进来,这样更加方便了,另外,我用const std::string而不用const char*是为了应用范围更广泛,因为有char* 到 string的默认构造函数,可以自动转换,反之则不行,不知道这样有没有副作用,高手提醒之。还有,因为常用,我把它放到myself名字空间下。这里未与列出。
相关文章推荐
- 关于容器输出的学习与简化过程
- STL学习(七)--STL各种容器的使用时机详解
- 【STL容器学习】-关联容器与map的使用方法
- C++ 学习 6 STL容器使用
- C++--STL-string容器的使用,学习代码
- C++ STL容器的学习使用(vector、queue、list、set、map)
- 一个关于容器使用的段子 学习一下
- 关于在STL容器list中使用find_if搜索特定的节点
- 关于STL 容器的嵌套使用, 小试牛刀
- STL学习笔记之使用“交换技巧”来修整顺序容器的过剩容量
- 关于STL常用容器的erase使用陷阱
- 例程讲解关于图像处理程序中文件操作时对于STL容器的使用
- 关于stl标准容器中的迭代器的使用注意事项
- 关于STL模板的使用效率与控制输出时最后不加空格问题
- STL学习笔记之 (五)容器 vector deque list 使用条件
- C++学习 STL之七:STL各种容器的使用时机详解
- 关于在STL容器list中使用find_if 函数
- C++ 中STL学习-50条有效使用经验学习笔记(一):容器
- 关于MSSQL存储过程中使用游标的一个小例子(学习)
- STL学习(三)vector容器学习