首頁 > 後端開發 > C++ > 如何在 C 中儲存異質物件:Boost.any 或自訂結構?

如何在 C 中儲存異質物件:Boost.any 或自訂結構?

Linda Hamilton
發布: 2024-10-27 08:28:03
原創
850 人瀏覽過

How to Store Heterogeneous Objects in C  : Boost.any or Custom Structures?

在 C 中儲存異構物件

在 C 中,在單一容器中儲存不同類型的物件可能是一個挑戰。然而,有幾種方法可以解決這個問題:

1.利用 Boost.any

考慮使用 Boost 函式庫,特別是 boost::any 類別。 Boost.any 提供了一種安全且有效率的方法來儲存任何類型的物件。您可以建立 boost::any 物件的向量或列表,並用各種資料類型填滿它。

2.建立自訂結構或聯合

或者,您可以建立自己的結構或聯合來保存不同類型的物件。定義一個結構或聯合,其中的成員代表每種潛在的資料類型。使用枚舉或指示符指定每個物件的活動類型。但是,使用聯合時請務必小心,因為它們會施加限制,如果使用不當,可能會導致未定義的行為。

範例程式碼

<code class="cpp">// Using a custom structure
struct MyContainer {
    int i;
    string s;
    double d;
    enum {INT, STRING, DOUBLE} type;
};

// Using boost::any
#include <boost/any.hpp>
vector<boost::any> myContainer;
myContainer.push_back(10);
myContainer.push_back("hello");
myContainer.push_back(3.14);</code>
登入後複製

其他注意事項

雖然這些方法提供了儲存異質物件的解決方案,但質疑這種設計的目的很重要。考慮是否有替代的資料結構或設計模式可以更有效地解決問題。

以上是如何在 C 中儲存異質物件:Boost.any 或自訂結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板