std::ostream& operator<<(std::ostream& o,const std::pair<int,int>& p) { o << p.first << p.second; return o;}
当我打印我的数据时,我想使用这个 *** 作符:
std::vector<std::pair<int,int>> data;std::copy(data.begin(),data.end(),std::ostream_iterator<std::pair<int,int>>(std::cout,"\n"));
但编译器说, *** 作符<< ...
我究竟做错了什么?
std::for_each(data.begin(),[](const std::pair<int,int>& p){ std::cout << p << std::endl;});
您不能在std命名空间中重载,您只能为自定义类型添加特殊化
总结The behavior of a C++ program is undefined if it adds declarations or deFinitions to namespace std or to a
namespace within namespace std unless otherwise specifIEdA program may add a template specialization for any standard library template to namespace std only if the declaration depends on a user-defined type and the specialization meets the standard library requirements for the original template and is not explicitly prohibited.
以上是内存溢出为你收集整理的c – std :: ostream_iterator没有找到operator <<全部内容,希望文章能够帮你解决c – std :: ostream_iterator没有找到operator <<所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)