2016-06-15 8 views
0

의 값을 변경하는 가장 효율적인 방법I이 비트 세트 내의 비트의 범위의 값을 변경하는 낮은 복잡도로 효율적인 방법이 필요 STD 비트의 범위 : 비트 세트

bitset<1000000> bs; 

및 예를 들어 100에서 500까지의 값을 TRUE로 설정해야합니다.

가장 낮은 복잡도로이를 수행하는 가장 빠른 방법은 무엇입니까?

루프를 사용하면 충분하지 않습니다.

+1

SO가 코드 작성 서비스가 아니기 때문에이 질문을 닫지 않으려 고 투표했습니다. 노력을 보여주십시오. – EdChum

+0

하지만 코드 작성을 요청하지 않습니다! –

+0

@EbramShehata 아마도 여러 시도를 제공하고 어떤 것이 더 효율적인지 볼 수 있습니다. – Mine

답변

0

에 대한 루프 평범한는 가장 쉽고 빠른 식으로 : 불행하게도

std::bitset<1000000> bs; 

for (unsigned i = start, stop = start + n; i != stop; ++i) 
    bs.set(i); 

:

또한 std::bitsetiterators 제공되지 않는 것을 고려, 그래서는 <algorithm> 라이브러리의 기능을 사용할 수 없습니다.

성능이 중요한 경우 ad-hoc 구현을 고려해 볼 수 있습니다.