印刷マップのコンテンツについては、次のリンクを参照しました。
したがって、マップコンテンツの印刷の基本は知っていますが、データ型がクラスオブジェクトであり、以下に示すように他のコードを使用して、次の方法でマップを定義したかどうかはわかりません。
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;
}
はいの場合、メソッドを使用していくつかの投稿を見たので、いつオーバーロード operator<< を使用するか。
こんにちは@コンピュータ
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 ;
}
};
しかし、`operator<<(std::basic_ostream への未定義の参照エラーが発生します