我使用 std::variant 作為安全型別聯合。在https://en.cppreference.com/w/cpp/utility/variant我讀過
變體不允許保存參考、陣列或 void 型別。
這是否意味著std::vector不允許保存在 std::variant 中?-它是一種陣列,但我可以將std::string 保存在我的變體中,使用簡單的 c union 可能我無法做到這一點。
我找不到那個(虛擬)問題的直接答案。
uj5u.com熱心網友回復:
這是否意味著 std::vector 不允許保存在 std::variant 中?
不是這個意思。std::vector不是參考、陣列或型別 void。它是一個(模板的)型別別。std::variant被允許持有std::vector。
它是一種陣列
std::vector建模的抽象資料結構是一種“陣列”。但無論如何,它不是陣列型別。
但我可以在我的變體中保存 std::string
std::string還對一種類似于“陣列”的抽象資料結構進行建模。事實上,資料結構在很多方面與向量幾乎相同。但實際上,這兩個模板都不是陣列,它們都可以保存在一個變體中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/337810.html
標籤:C
