在工作中我們經(jīng)常會碰到打印調(diào)試數(shù)據(jù)齐遵。
在大的項(xiàng)目中我們常常有序列化工作,將他序列化后谋逻,我們就可以很方便將他打印出來呆馁。
但是在通常的小demo中桐经,我們往往不喜歡引入過大的依賴庫。
其中有一個(gè)環(huán)境常常是打印數(shù)組浙滤。
如果是簡單的數(shù)組阴挣,我們通常可以用以下函數(shù)來實(shí)現(xiàn)纺腊。
template<typename T>
inline void printArray(vector<T> &array) {
cout << "\n[ ";
for(auto e : array) {
cout << e << " ";
}
cout << "]\n";
}
很多情形中畔咧,以上方法就夠用了。但是當(dāng)T
也是一個(gè)數(shù)組的時(shí)候就會發(fā)現(xiàn)不夠用了
所以我這邊建議可以使用以下的方法
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;
}