使用内部结构构建器映射
Map with an inner stuct builder
我有一个内部结构为的映射:
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;
它给我一个关于没有合适的构建器的错误。
std::map::operator[]
要求值是默认可构造的,Messages
不是这种情况。您必须使用其他接口作为 insert
/emplace
来填充地图和 at
或 find
来检索值
我有一个内部结构为的映射:
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;
它给我一个关于没有合适的构建器的错误。
std::map::operator[]
要求值是默认可构造的,Messages
不是这种情况。您必须使用其他接口作为 insert
/emplace
来填充地图和 at
或 find
来检索值