在工作中我们经常会碰到打印调试数据。
在大的项目中我们常常有序列化工作,将他序列化后,我们就可以很方便将他打印出来。
但是在通常的小demo中,我们往往不喜欢引入过大的依赖库。
其中有一个环境常常是打印数组。
如果是简单的数组,我们通常可以用以下函数来实现。
template<typename T>
inline void printArray(vector<T> &array) {
cout << "\n[ ";
for(auto e : array) {
cout << e << " ";
}
cout << "]\n";
}
很多情形中,以上方法就够用了。但是当T
也是一个数组的时候就会发现不够用了
所以我这边建议可以使用以下的方法
template<typename T>
ostream& operator<< (ostream& out, const vector<T>& v) {
out << "{";
size_t last = v.size() - 1;
for(size_t i = 0; i < v.size(); ++i) {
out << v[i];
if (i != last)
out << ", ";
}
out << "}";
return out;
}
网友评论