使用std :: map :: at时出错

尤斯卡迪

我有一张地图定义为:

map<std::string,std::vector<message *> > data;

其中,std::string是指用户名(主键)以及std::vector<message *>与特定用户名相对应的消息。消息是一个包含消息ID,时间和消息文本的结构。因此,为了回退另一条消息,我使用以下代码:

std::vector<message *> messages = data.at[recvbuf_usrn];
messages.push_back(new message(*recvbuf_msg,currentDateTime()));
data[*recvbuf_usrn] = messages;

但我得到一个错误:

error C3867: 'std::map<_Kty,_Ty>::at': function call missing argument list; use '&std::map<_Kty,_Ty>::at' to create a pointer to member

其中recvbuf_usrn和recvbuf_msg的定义如下:

std::string *recvbuf_usrn=new std::string;
std::string *recvbuf_msg=new std::string;

我该如何解决?

贾罗德42

它应该是

data.at(recvbuf_usrn);

at与父母)。或者

data[recvbuf_usrn];

顺便说一句,它返回一个引用,所以您可以简单地执行以下操作:

auto& messages = data[recvbuf_usrn];
messages.push_back(new message(*recvbuf_msg, currentDateTime()));

您可能还应该使用智能指针:

std::map<std::string, std::vector<std::unique_ptr<message>>> data;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XCode / Clang用std :: shared_ptr实例化std :: map时出错

来自分类Dev

尝试从std :: map查找const char *键时出错

来自分类Dev

尝试从std :: map查找const char *键时出错

来自分类Dev

在IPython Notebook中使用Pandas DataFrame Map函数时出错

来自分类Dev

C ++:将自定义哈希键值从unordered_map输出到std :: cout时出错

来自分类Dev

在类中使用std :: thread时出错

来自分类Dev

使用std :: string :: npos时出错

来自分类Dev

使用std :: map时只读成员的错误递减

来自分类Dev

使用std :: vector <std :: string> myString时出错

来自分类Dev

使用SpringMVC和Jackson2获取JSON Map <String,Object>时出错

来自分类Dev

使用get_map函数创建新的纽约城市地图时出错

来自分类Dev

使用 map() 时出错:根据另一列中的值创建新的 Pandas 列

来自分类Dev

在libc ++和libstdc ++之间的std :: map上使用std :: find时的实现差异

来自分类Dev

使用pip时出错

来自分类Dev

使用scrapy时出错

来自分类Dev

使用detectMSERFeatures时出错

来自分类Dev

使用IJulia时出错

来自分类Dev

使用substr时出错

来自分类Dev

使用atoi时出错

来自分类Dev

使用PyVISA时出错

来自分类Dev

使用AppConfig时出错

来自分类Dev

使用宏时出错

来自分类Dev

使用StanfordCoreNLP时出错

来自分类Dev

使用TCPDF时出错

来自分类Dev

使用NSLayoutConstraint时出错

来自分类Dev

使用ThreadPoolExecutor时出错

来自分类Dev

使用rscript时出错

来自分类Dev

使用循环时出错

来自分类Dev

使用lapply时出错?