Тестирование диапазонов битов в std::bitset
Есть ли эффективный способ тестирования поддиапазонов в std::bitset
? Похоже, это не так.
Я вижу std::bitset::any
а также std::bitset:all
(для C++11), но они для всего набора, а не поддиапазона. То, на что я надеялся, было перегруженной версией any
а также all
, Что-то вроде:
bool all(size_t off, size_t len) const;
std::bitset::test
также только один бит. Теоретически, я мог бы создать наборы битов для битового твида, но эти наборы битов будут довольно большими, и это может быть нецелесообразно.
Мысли?
Спасибо!
1 ответ
Возможно (по крайней мере теоретически), что ваша стандартная библиотека имеет версии std::all_of
, std::any_of
а также std::none_of
алгоритмы, специализирующиеся на std::bitset::iterator
которые используют знания библиотеки о внутреннем устройстве, чтобы обеспечить более эффективную реализацию, чем вы сами.
Если нет, то, возможно, стоит ваших усилий, чтобы написать и внести такие специализации. Предполагая, конечно, что ваша стандартная библиотека принимает такие материалы на условиях, с которыми вы готовы согласиться.