我提到了这个链接有关打印地图的内容:如何打印地图内容与数据类型是一个类的对象
,所以我知道的印刷地图内容的基础上,但我不知道如果我定义我的与数据类型如下方式映射是一个类对象,并与其它的代码,如下所示:
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;
}
如果是,那么当使用重载操作< <,因为我看到使用该方法的一些职位。
嗨@computer
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 ;
}
};
但发生错误未定义的参考`运营商< <(STD :: basic_ostream
我很困惑这个问题是关于如何发送一个指针到对象到一个'std :: ostream'或者如何为你的映射元素类型写一个插入操作符。你能否澄清这个问题(或者它的* *或*都不是那些?)。 – WhozCraig
@WhozCraig嗨,其实这两个问题我都希望知道答案。 :) –