在 C++ 程序中,我有一个 std::list 和 std::map(尽管我实际上使用的是 boost:unordered_map),我想知道一种将列表中的所有元素插入到地图中的优雅方法。我希望密钥是对列表中元素的方法调用的结果。
所以例如我有:
std::list<Message> messages = *another list with elements*;
std::map<std::string, Message> message_map;
我想将列表中的所有元素插入到映射中,键为 message.id(),用于消息中的每条消息。
有没有办法在不循环列表并手动执行的情况下做到这一点?我不能使用 C++11,但出于兴趣,我仍然会对 C++11 解决方案感兴趣。我可以使用提升。
谢谢你。