Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> странности bitset' a 
:(
    Опции темы
_hunter
  Дата 29.3.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



Добрый день.

Понадобилось мне с битовыми множествами работать; проглядев хелп, нашел bitset. и тут оказалось что его размер должен задаваться на этапе компиляции ( что за бред? ). собственно вопрос: можно ли что-то сделать что бы размер задавался просто константой?

Заранее благодарю за ответ.


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
cardinal
Дата 29.3.2005, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(_hunter @ 29.3.2005, 21:01)
с битовыми множествами

А что это?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Fire-Plug
Дата 29.3.2005, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата(cardinal @ 29.3.2005, 23:08)
Цитата (_hunter @ 29.3.2005, 21:01)
с битовыми множествами


А что это?

То же, что и последовательность битов. Или же ты про STL класс bitset спрашиваешь?
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
cardinal
Дата 29.3.2005, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Цитата(Fire @ 29.3.2005, 21:33)
Или же ты про STL класс bitset спрашиваешь?

Да нет. Я в о общем спрашиваю. Я не очень понял зачем _hunter нужен bitset...
_hunter, напиши пример того, что ты хочешь сделать. Может тут и bitset никакой не нужен?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Fire-Plug
Дата 29.3.2005, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата(_hunter @ 29.3.2005, 23:01)
собственно вопрос: можно ли что-то сделать что бы размер задавался просто константой?


Размер bitset задается в конструкторе константным выражением, к-рое как известно, вычисляется на этапе компиляции.
Например, (© MSDN)
Код

std::bitset<2 * sizeof (int)> bs;



--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
Олег М
Дата 30.3.2005, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Цитата(_hunter @ 29.3.2005, 23:01)
Понадобилось мне с битовыми множествами работать; проглядев хелп, нашел bitset. и тут оказалось что его размер должен задаваться на этапе компиляции ( что за бред? ). собственно вопрос: можно ли что-то сделать что бы размер задавался просто константой?

Тебе скорее всего надо std::vector<bool> - это битовый массив
PM MAIL ICQ   Вверх
srd
Дата 30.3.2005, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 27
Всего: 49



std::bitset - предназначен для битовых множеств с постоянной длиной. Если длина может изменяться, то используется std::vector<bool>. В нормальных реализациях STL присутствует специализация этого шаблона, в котором один элемент занимает один бит. Но в STL от MSVC++ 6.0 такой специализации нет, там один элемент std::vector<bool> занимает байт. Начиная с седьмой версии это исправили.



--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Dark Elf
Дата 30.3.2005, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



Мой тебе совет - используй boost::dynamic_bitset

Ссылка на библиотеку BOOST

Кроме того на форуме chipset выложил мой перевод документации к нему:

Документация на форуме


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
DENNN
Дата 30.3.2005, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Я бы посоветовал почитать Мейерса "эффективное использование STL". Там по-поводу bitset'ов много интересных замечаний в конце книги. и добрый совет напоследок - использовать vector<char> вместо vector<bool>
PM ICQ   Вверх
_hunter
Дата 30.3.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



cardinal, мне именно с набором битов работать нужно. ( пока и работаю с vactor<bool> просто у bitset' a есть куча удобных операторов... )
DENNN, а чем ector<char> лучше vector<bool>?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Daevaorn
Дата 30.3.2005, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



_hunter, тебя спасет великий буст: boost::dynamic_bitset. Быстро и удобно...
PM MAIL WWW   Вверх
_hunter
Дата 30.3.2005, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



не уверен что он под билдер станет...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Dark Elf
Дата 31.3.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



2 _hunter - а почему ты считаешь что не станет?
Вон сколько платформ поддерживается:
http://boost.org/more/getting_started.html


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.