| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > странности bitset' a |
| Автор: _hunter 29.3.2005, 23:01 |
| Добрый день. Понадобилось мне с битовыми множествами работать; проглядев хелп, нашел bitset. и тут оказалось что его размер должен задаваться на этапе компиляции ( что за бред? ). собственно вопрос: можно ли что-то сделать что бы размер задавался просто константой? Заранее благодарю за ответ. |
| Автор: cardinal 29.3.2005, 23:08 | ||
А что это? |
| Автор: Fire-Plug 29.3.2005, 23:33 | ||
То же, что и последовательность битов. Или же ты про STL класс bitset спрашиваешь? |
| Автор: cardinal 29.3.2005, 23:48 | ||
Да нет. Я в о общем спрашиваю. Я не очень понял зачем _hunter нужен bitset... _hunter, напиши пример того, что ты хочешь сделать. Может тут и bitset никакой не нужен? |
| Автор: Fire-Plug 29.3.2005, 23:56 | ||||
Размер bitset задается в конструкторе константным выражением, к-рое как известно, вычисляется на этапе компиляции. Например, (© MSDN)
|
| Автор: Олег М 30.3.2005, 07:40 | ||
Тебе скорее всего надо std::vector<bool> - это битовый массив |
| Автор: srd 30.3.2005, 07:56 |
| std::bitset - предназначен для битовых множеств с постоянной длиной. Если длина может изменяться, то используется std::vector<bool>. В нормальных реализациях STL присутствует специализация этого шаблона, в котором один элемент занимает один бит. Но в STL от MSVC++ 6.0 такой специализации нет, там один элемент std::vector<bool> занимает байт. Начиная с седьмой версии это исправили. |
| Автор: Dark Elf 30.3.2005, 09:14 |
| Мой тебе совет - используй boost::dynamic_bitset http://boost.org Кроме того на форуме chipset выложил мой перевод документации к нему: http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=2336 |
| Автор: DENNN 30.3.2005, 09:22 |
| Я бы посоветовал почитать Мейерса "эффективное использование STL". Там по-поводу bitset'ов много интересных замечаний в конце книги. и добрый совет напоследок - использовать vector<char> вместо vector<bool> |
| Автор: _hunter 30.3.2005, 14:31 |
| cardinal, мне именно с набором битов работать нужно. ( пока и работаю с vactor<bool> просто у bitset' a есть куча удобных операторов... ) DENNN, а чем ector<char> лучше vector<bool>? |
| Автор: Daevaorn 30.3.2005, 20:20 |
| _hunter, тебя спасет великий буст: boost::dynamic_bitset. Быстро и удобно... |
| Автор: _hunter 30.3.2005, 22:53 |
| не уверен что он под билдер станет... |
| Автор: Dark Elf 31.3.2005, 09:17 |
| 2 _hunter - а почему ты считаешь что не станет? Вон сколько платформ поддерживается: http://boost.org/more/getting_started.html |