ホームページ  >  記事  >  バックエンド開発  >  C で不明なサイズのビットセットを初期化するにはどうすればよいですか?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-23 21:36:11532ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。