![]() |
как записать bitset в бинарной форме?
чего-то туплю.
Код:
А, самый цимес. В связи с большим размером сета, .to_ulong() кидает throw. |
Полагаю Вам нужно перегрузить
std::ostream& operator<<(std::ostream& s, bitset<8000>& b) Ну как-то так: Код:
#include <fstream>Цитата:
|
цимес - это национальное еврейское блюдо, из вареной моркови и изюма, сладенькое такое. по каким-то непонятным причинам считается деликатесом.
исключение - из-за того что размер битсета превышает "unsigned long". Так что действительно резонно. Я сначала хотел добавить преобразование в vector<unsigned long> и писть его, но так тоже неплохо. Правильность проверю в послезавтра на работе, но за наводку - большой спасиб. |
За экскурс спасибо, что-такое цимес не знал :) Расширяю кругозор так сказать.
Цитата:
Да, ну и вообще я конечно проверял приведенный пример, в принципе он конечно же работает, хотя конечно может чего-то и не учел до конца - утверждать не буду, набросан на скорую руку. |
Смысл был в том, что внутреннее представление у битсета идет именно в "unsigned long", и именно чтобы не делать лишних преобразований. Со всем остальным полностью согласен.
Цитата:
|
Цитата:
Думаю в этом случае просто используется нечто вроде vector<bool> или подобные конструкции. Но подозвеваю что для количества бит помещающегося в длинное целое для оптимизации наиболее вероятно какраз представлена подобная специализация данного шаблона в STL (не утверждаю правда что это именно так). Никаких обид - конечно надо тестировать! Мало ли чего на форуме понапишут ;) |
Цитата:
это вырезка из кода: Код:
// TEMPLATE CLASS bitsetП.С. Можно на "ты" ? П.П.С. а код таки рабочий :claps: |
| Часовой пояс GMT +4, время: 09:58. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.