[英]std::map<std::any, std::any> trouble
我正在嘗試使用std::any
類型的鍵和值制作std:map
視覺工作室 2017
std::map<std::any, std::any> m("lastname", "Ivanov");
std::cout << std::any_cast<std::string>(m["lastname"]) << std::endl;
給我一個
錯誤:二進制“<”:未找到采用“const_Ty”類型的左操作數的運算符
std::any
沒有二進制“<”運算符(小於)。 如何“索引” std::map
元素的默認方法。
解決方案可能包括:
使用自定義比較器,例如:
#include <map> #include <any> int main() { auto elements = std::initializer_list<std::pair<const std::any, std::any>>{}; auto mymap = std::map(elements, [](const std::any& lhs, const std::any& rhs){return false;}); }
然后實現比較 function 而不是返回false
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.