2016-04-16 14 views
0

我有一個內部sruct作爲地圖:地圖與內部stuct建設者

struct Messages { 
    unsigned int id; 
    string user_name; 
    string content; 
    time_t timestamp; 

    Messages(const string& a_user_name, const string& a_content) : 
     user_name(a_user_name), content(a_content), id(++last_id) 
    { 
     timestamp = time(0); 
    } 
}; 

map<unsigned int, Messages> Global_messages; 

當我試圖訪問一個元素:

cout << Global_messages[i].id; 

它給了我大約不會有錯誤一個合適的建設者。

+0

獲得確切的錯誤消息和映射/結構init代碼將會有幫助。另外,是否有Global_messages [i]值? –

+0

我已經用默認的構建器解決了它 – Narry

回答

2

std::map::operator[]要求值設定爲缺省構造,這是不的Messages的情況。您必須使用其他接口,如insert/emplace填寫地圖,並且atfind以檢索值