2010-04-26 46 views
0

我有一個函數,我使用bitset.Now我需要將其轉換爲動態位集.. 但我不知道如何。 有人能幫助我嗎?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

...和使用'dynamic_bitset',而不是'string'。 ('dynamic_bitset'實現'operator'') – Potatoswatter 2010-04-26 03:00:28

+0

同意,只有在需要時才使用'dynamic_bitset'並轉換爲'std :: string'。 – 2010-04-26 08:39:05