C で不明なサイズのビットセットを初期化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-23 21:36:11
オリジナル
546 人が閲覧しました

How to Initialize a Bitset of Unknown Size in C  ?

初期化時にビットセット サイズを定義する方法

C でビットセットを定義する場合、初期化時にサイズを指定できます。ただし、変数が宣言されるまでサイズがわからない場合、これは困難になります。

次のコードを考えてみましょう:

#include <bitset>

class Test {
public:
    std::bitset *myBitset;
};
ログイン後にコピー

ビットセットのサイズが異なるため、このコードはコンパイルされません。は指定されていません。サイズが不明なビットセットへのポインタは使用できません。

解決策の 1 つは、Boost ライブラリの Dynamic_bitset クラスを使用することです。

#include <boost/dynamic_bitset.hpp>

class Test {
public:
    boost::dynamic_bitset<> myBitset;
};
ログイン後にコピー

これにより、任意のサイズのビットセットを作成できます。

別の解決策は、次のベクトルを使用することです。 booleans:

#include <vector>

class Test {
public:
    std::vector<bool> myBitset;
};
ログイン後にコピー

これは理想的ではありませんが、ブール値のベクトルがビットセットのように動作するように特殊化されているため、機能します。

どのソリューションを選択しても、サイズを指定することが重要であることに注意してください。初期化時のビットセットの。そうしないと、コンパイラ エラーが発生します。

以上がC で不明なサイズのビットセットを初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート