我有使用以下結構的函式:
struct stm {
size_t op;
std::string st_out;
}
并且我已經宣告了將保存參考的無序映射的簽名:
std::unordered_map<uint64_t, std::function<int(stm&, const uint64_t)> instruction_actions;
我寫了我想保存參考的功能:
bool write(stm&s, const uint64_t item) {
std::cout << "op: " << s.st_out << std::endl;
return true;
}
但我應該如何將它們添加到地圖中?
uj5u.com熱心網友回復:
首先,您的函式write
缺少 return 陳述句。
我應該如何將它們添加到地圖中?
有多種方法可以做到這一點,如下所示:
std::unordered_map<uint64_t, std::function<int(stm&, const uint64_t)>>
instruction_actions{{5, write}};
或使用std::map::insert
instruction_actions.insert({5, write});
或使用std::map::operator[]
:
instruction_actions[5] = write;
作業演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/537582.html
標籤:C 功能结构无序映射