簡體   English   中英

標准::map<std::any, std::any> 麻煩</std::any,>

[英]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元素的默認方法。

解決方案可能包括:

  1. 使用另一個鍵(具有運算符'<')
  2. 使用自定義比較器,例如:

     #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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM