【发布时间】:2016-01-23 06:36:05
【问题描述】:
我读了这篇文章How to print out the contents of a vector?,其中一个beautiful answer 是通过以下方式打印向量的内容
std::copy(path.begin(), path.end(), std::ostream_iterator<char>(std::cout, " "));
它工作得很好。但是如果我的向量是vector<pair<int, struct node>> 类型的呢?如何使用上述方法打印这个向量?
我试过了
std::copy(path.begin(), path.end(), std::ostream_iterator<pair<int, struct node>>(std::cout, " "));
我得到了巨大的错误转储,几行如下
在 /usr/include/c++/4.9/iterator:64:0 中包含的文件中,
来自 dijkstra.cpp:8:
/usr/include/c++/4.9/ostream:548:5: 注意:模板 std::basic_ostream& std::operator 运算符 /usr/include/c++/4.9/ostream:548:5:注意:模板参数推导/替换失败:
在 /usr/include/c++/4.9/iterator:66:0 包含的文件中, 来自 dijkstra.cpp:8:
/usr/include/c++/4.9/bits/stream_iterator.h:198:13:注意:无法将“__value”(类型“const std::pair”)转换为类型“const unsigned char*” *_M_stream
想不通。有什么帮助吗?
【问题讨论】: