美文网首页
如何在调试中比较优雅的打印vector

如何在调试中比较优雅的打印vector

作者: _SHIZI | 来源:发表于2019-10-17 19:39 被阅读0次

    在工作中我们经常会碰到打印调试数据。
    在大的项目中我们常常有序列化工作,将他序列化后,我们就可以很方便将他打印出来。
    但是在通常的小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;
    }
    

    相关文章

      网友评论

          本文标题:如何在调试中比较优雅的打印vector

          本文链接:https://www.haomeiwen.com/subject/awgvmctx.html