我制作了一個地圖,其中包含帶有字串值或串列值的字串鍵。在我嘗試訪問串列值之前,它沒有給我任何語法錯誤,并且到目前為止對我來說效果很好。我嘗試將其設定為變數,使用自動,但不行。不知道還有什么可以嘗試,任何幫助表示贊賞。
using map = std::map<std::string, std::variant<std::string, std::list<std::string>>>;
std::list<std::string> TagList{ "Paid", "Needs invoice" };
map m{ {"TIME",TimeHourAndMin}, {"HEADER","Title"},{"TAGS", TagList},{"CONTENT", "Hey this is content!"} };
// E0135 class "std::variant<std::string, std::list<std::string, std::allocator<std::string>>>" has no member "begin"
// E0135 class "std::variant<std::string, std::list<std::string, std::allocator<std::string>>>" has no member "end"
for (auto it = m["TAGS"].begin(); it != m["TAGS"].end(); it ) {
}
uj5u.com熱心網友回復:
問題是它m["TAGS"]屬于型別std::variant,因此沒有begin方法。由于您想從您的變體中獲取串列,您可以使用該std::get函式來執行此操作
auto it = std::get<std::list<std::string>>(m["TAGS"]).begin();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486145.html
標籤:C
上一篇:我撰寫了一個遞回代碼來計算前n個數字的總和,因為我沒有回傳s,但代碼正在運行。為什么?[復制]
下一篇:如何傳遞變數的指標?
