美文网首页
[C++]vector对<<重载

[C++]vector对<<重载

作者: 王晓宇_xiaoyuwang | 来源:发表于2017-05-13 23:09 被阅读0次
template <typename T>
std::ostream& operator << (std::ostream& out, std::vector<T> vec) {
    out << "[";
    for (typename std::vector<T>::iterator ite(vec.begin()); ite != vec.end(); ite++) {
        out << *ite;
        if (vec.end() != ite + 1)
            out << ", ";
    }
    out << "]";
    return out;
}

用法

std::vector<int> v = {1,2,3};
std::cout << v << std::endl;
std::vector<std::vector<int>> vec = {{1,2,3},{4,5,6}};
std::cout << vec << std::endl;

打印map

#include <iostream>
#include <map>
#include <utility>
#include <algorithm>

using namespace std;

template<typename T, typename U>
ostream& operator <<(ostream& os, const map<T, U> &m) {
    for_each(m.begin(), m.end(), [&os](pair<T, U> p) {os << "map[" << p.first << "]=" << p.second << endl; });
    return os;
}

int main() {
    map<int, int> m;
    m[0] = 1;
    m[1] = 2;
    cout << m << endl;
}

相关文章

  • [C++]vector对<<重载

    用法 打印map

  • c++13~c++多线程写vector

    2019.03.16 c++多线程写vector 多线程对vector进行push_back会造成crash 事先...

  • #拖延症# 需要看的文章的记录

    C++ 对vector等STL标准容器进行排序操作--csdn该篇文章通过对vector排序的总结,明白stl是一...

  • c++的运算符重载

    C++中的加号重载:例:实现复数的相加 C++中的前置++重载:例:点的移动 C++中的后置++重载:例:点的移动

  • 1.2.15_C++ 关系运算符重载

    C++ 重载运算符和重载函数 C++ 语言支持各种关系运算符( < 、 > 、 <= 、 >= 、 == 等等),...

  • C++基础-(重载)

    C++基础 重载 哪些运算符可以被重载:::,.,->,*,?:不能被重载 重载操作符的标志(operator) ...

  • 2_11基数排序

    C++的queue实现 C++ vector 实现 python 实现

  • 30小时快速精通C++拾遗

    C语言不支持重载,为什么C++支持重载? C语言不支持函数重载,编译时函数名加上_或者其他标识C++为什么能够重载...

  • C++运算符重载

    C++运算符重载的实质:运算符重载的实质就是函数重载或函数多态。运算符重载是一种形式的C++多态。目的在于让人能够...

  • C++ STL 之 vectot(三)

    今天我们继续更新 C++ STL 中 vector 容器的使用 vector 容器增加元素 vector 容器增加...

网友评论

      本文标题:[C++]vector对<<重载

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