Apabila mentakrifkan bitset dalam C , anda boleh menentukan saiz pada masa permulaan. Walau bagaimanapun, ini menjadi sukar apabila saiznya tidak diketahui sehingga selepas pembolehubah diisytiharkan.
Pertimbangkan kod berikut:
#include <bitset> class Test { public: std::bitset *myBitset; };
Kod ini tidak akan dikompilkan kerana saiz bitset tidak dinyatakan. Anda tidak boleh menggunakan penuding kepada set bit saiz yang tidak diketahui.
Satu penyelesaian ialah menggunakan kelas dynamic_bitset daripada perpustakaan Boost:
#include <boost/dynamic_bitset.hpp> class Test { public: boost::dynamic_bitset<> myBitset; };
Ini membolehkan anda mencipta set bit daripada sebarang saiz pada masa jalan.
Penyelesaian lain ialah menggunakan vektor boolean:
#include <vector> class Test { public: std::vector<bool> myBitset; };
Ini tidak sesuai, tetapi ia berfungsi kerana vektor boolean dikhususkan untuk bertindak seperti set bit.
Mana-mana penyelesaian yang anda pilih, ingat bahawa adalah penting untuk menentukan saiz set bit pada masa permulaan. Jika tidak, anda akan menghadapi ralat pengkompil.
Atas ialah kandungan terperinci Bagaimana untuk Memulakan Bitset Saiz Tidak Diketahui dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!