我有一個項目,我在其中使用人的目錄。在我的主課程中,我呼叫cout < < myDirectory < < endl;在此目錄中顯示整個人員列表。爲此,我在Directory Class和Person類中覆蓋了< <運算符。ostream不顯示探查C++
在我使用的具體原因一張地圖,這樣我顯示每個人這樣Directory類:
std::ostream& operator<<(std::ostream& os, const T& myDirectory)
{
typedef map<Person, Location>::const_iterator Iterator;
for(Iterator it=myDirectory.m_directory.begin();it!=myDirectory.m_directory.end;++it){
os<<it->first<<endl;
}
return os;
爲了做到這一點,我也該重載< <運營商在Person類方式:
ostream& operator<<(std::ostream& os, const Person& p){
os << p.lastName << "," << p.firstName << endl;
return os;
}
我的問題是,它顯示不正確。逗號前面的名字和姓氏以及合併在一起的名字和種類。例如,如果我的名字是傑克丹尼,我會得到這樣的輸出:
,Jackls
如果我使用ENDL;在名字和名字後它運作良好。例如:
os << p.lastName << endl;
os << "," << p.firstName << endl;
我得到這樣的輸出:
丹尼爾斯
,傑克
任何想法,我做錯了什麼?
我認爲你的問題是你如何閱讀和存儲信息 – NathanOliver