2010-04-26 4 views
0

나는 bitset.Now를 사용하여 동적 비트 셋으로 변환해야하는 함수가 있습니다. 하지만 어떻게해야할지 모르겠군요. 누군가 나를 도울 수 있습니까?bitset to dynamic bitset

set<string> generateCandidates(set<string> ck,unsigned int k){ 
set<string> nk ; 
for (set<string>::const_iterator p = ck.begin();p != ck.end(); ++p){ 
    for (set<string>::const_iterator q = ck.begin();q != ck.end(); ++q){ 
     bitset<4> bs1(*p); 
     bitset<4> bs2(*q); 
     bs1|= bs2 ; 
     if(bs1.count() == k){ 
      nk.insert(bs1.to_string<char,char_traits<char>,allocator<char> >()); 
     } 
    } 
} 
return nk; 
} 

답변

3

의 차이는 that big되지 않습니다 :

boost::dynamic_bitset<> bs1(*p); 
boost::dynamic_bitset<> bs2(*q); 
bs1 |= bs2; 
if(bs1.count() == k){ 
    std::string str; 
    boost::to_string(bs1, str); 
    nk.insert(str); 
} 
+1

... 그리고 대신 string''의'dynamic_bitset'를 사용합니다. ('dynamic_bitset'는'operator <')를 구현한다 – Potatoswatter

+0

'dynamic_bitset'을 사용하고 필요하다면'std :: string'으로 변환하는 것으로 동의한다. –