首頁 >後端開發 >C++ >如何用 C 語言將異質資料儲存在可變大小的容器中?

如何用 C 語言將異質資料儲存在可變大小的容器中?

Patricia Arquette
Patricia Arquette原創
2024-11-04 22:21:02999瀏覽

How to Store Heterogeneous Data in Variable-Sized Containers in C  ?

C 中的異構容器

STL 提供了廣泛的容器來處理具有特定要求的數據,例如固定和可變大小、相同和不同類型的資料、排序和未排序的資料以及順序和隨機存取。然而,正如您所觀察到的,STL 中沒有容器將可變大小與對不同資料類型的支援相結合。

為了滿足此特定要求,C 不提供本機容器。相反,有兩種主要方法可以在可變大小的容器中儲存異質資料:

  1. 指標或引用的容器:

    您可以儲存指向從公共基底類別繼承的不同類型物件的指標或引用的容器。例如,您可以有一個 std::vector 。儲存從 MyBaseType 派生的派生類型的物件。

  2. Boost 函式庫:

    Boost 函式庫提供了兩個用於處理異質資料的強大工具:

    • boost::any: 允許您儲存任何類型的物件。它提供了轉換和操作儲存值的方法。
    • boost::variant: 將儲存限制為一組有限的已知類型。它根據指定類型提供對儲存值的類型安全存取。

問題答案中提供的程式碼範例示範如何使用 boost::any 建立可變大小的容器,可以儲存不同類型的值,例如整數和字串。另一方面,boost::variant 允許您定義一組允許的類型並儲存這些類型的值,從而提供類型安全的存取。

以上是如何用 C 語言將異質資料儲存在可變大小的容器中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn