Тестирование диапазонов битов в 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 которые используют знания библиотеки о внутреннем устройстве, чтобы обеспечить более эффективную реализацию, чем вы сами.

Если нет, то, возможно, стоит ваших усилий, чтобы написать и внести такие специализации. Предполагая, конечно, что ваша стандартная библиотека принимает такие материалы на условиях, с которыми вы готовы согласиться.

Другие вопросы по тегам