ostream_iterator >(cout,"") 不能输出 出错解决思路
ostream_iterator<pair<int ,string> >(cout,",") 不能输出 出错
#include<iostream>
#include<map>
#include<iterator>
using namespace std;
#include <utility>
template<typename T>
class bb
{
public:
bool operator()(const T& a,const T &b)const
{
return a<b;
}
};
ostream & operator<<(ostream & os,const pair<int,string> & p) const
{
return os<<p.first<<":"<<p.second<<endl;
}
int main()
{
map<int,string,bb<int> > cc;
cc.insert(make_pair(1,"lona"));
cc.insert(make_pair(2,"lona"));
copy(cc.begin(),cc.end(),ostream_iterator<pair<int,string> >(cout,","));
}
------解决方案--------------------
------解决方案--------------------
早都说了把<<加入std空间就行了嘛.....
#include<iostream>
#include<map>
#include<iterator>
using namespace std;
#include <utility>
template<typename T>
class bb
{
public:
bool operator()(const T& a,const T &b)const
{
return a<b;
}
};
ostream & operator<<(ostream & os,const pair<int,string> & p) const
{
return os<<p.first<<":"<<p.second<<endl;
}
int main()
{
map<int,string,bb<int> > cc;
cc.insert(make_pair(1,"lona"));
cc.insert(make_pair(2,"lona"));
copy(cc.begin(),cc.end(),ostream_iterator<pair<int,string> >(cout,","));
}
------解决方案--------------------
------解决方案--------------------
早都说了把<<加入std空间就行了嘛.....
- C/C++ code
ostream_iterator<_Ty, _Elem, _Traits>& operator=(const _Ty& _Val) { // insert value into output stream, followed by delimiter *_Myostr << _Val; if (_Mydelim != 0) *_Myostr << _Mydelim; 这里要调用lz写的<<,如果不在同一个命名空间是找不到的,自然会报错 return (*this); }