我提到了这个关于打印地图内容的链接:
所以我知道打印地图内容的基础知识,但是我不确定我是否以以下方式定义了我的地图,数据类型是类对象,其他代码如下所示:
typedef map <string, fsdbSig *> Pinname_sig;
Pinname_sig _Pinname_sig;
Pinname_sig :: iterator itPS;
我想知道打印地图内容的方式和上面的链接一样吗?
for (itPS = _Pinname_sig.begin(); itPS != _Pinname_sig.end(); ++itPS){
cout << "Jden-key:" << itPS->first << "," << "value:" << itPS->second <<endl;
}
如果是,那么何时使用重载运算符<<,因为我看到了一些使用该方法的帖子。
嗨@电脑
struct fsdbSig
{
public:
friend std::ostream& operator<< (std::ostream& , const fsdbSig&); //jaden
char * _name; // signal name
fsdbVarType _type; // signal type
ushort_T _lbitnum; // signal left bit number
ushort_T _rbitnum; // signal right bit number
fsdbBytesPerBit _bpb; // signal byte per bit
byte_T _value; // signal value
fsdbSig(char * name, fsdbVarType type, ushort_T lbitnum, ushort_T rbitnum, fsdbBytesPerBit bpb, byte_T value ) // constructor
{
_name = name;
_type = type;
_lbitnum = lbitnum ;
_rbitnum = rbitnum ;
_bpb = bpb;
_value = value ;
}
};
但是发生错误 undefined reference to `operator<<(std::basic_ostream