首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

ostream_iterator<pair<int ,string> >(cout,"") 不能输出 出错解决思路

2012-06-19 
ostream_iteratorpairint ,string (cout,,) 不能输出 出错#includeiostream#includemap#include

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,","));
}

[解决办法]

探讨

#include <utility>
#include <iostream>
#include <iterator>
#include <map>
#include <algorithm>
#include<string>
template<typename T>
class bb
{
public:
bool operator()(const T&amp; a,const ……

[解决办法]
早都说了把<<加入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);        } 

热点排行
Bad Request.