2012-11-23 24 views
2

我需要升壓的1第一和最後一個出場的指標::來,dynamic_bitset <>,首先是容易找到像SIZE_TYPE find_first() const。如何找到最後一個,我是否需要按相反順序迭代或創建新的或有更簡單的方法找到技巧?如何找到一個提升的第一和最後一個出場::來,dynamic_bitset <>

+0

由於沒有內置的功能來搜索最後一個,所以你建議的任何一種方式(迭代(從最後到第一個),或倒退後跟前向查找)都適合解決方案。我猜你應該選擇哪一個取決於你發現的更容易。 –

回答

1

我們可以使用一些技巧像

#include <iostream> 
#include <boost/dynamic_bitset.hpp> 

int main() 
{ 
    typedef boost::dynamic_bitset<>::size_type size_type; 
    const size_type npos = boost::dynamic_bitset<>::npos; 
    boost::dynamic_bitset<> bitset(10, 50); 
    size_type first_idx = bitset.find_first(); 
    size_type current_idx = first_idx; 
    if (first_idx != npos) 
    { 
     do { 
     current_idx = bitset.find_next(current_idx); 
     } while (bitset.find_next(current_idx) != boost::dynamic_bitset<>::npos); 
     std::cout << bitset << " first: " << first_idx << " last: " << current_idx << std::endl; 
    } 
} 
1

我已經放在票的boost ::來,dynamic_bitset與方法find_prev()find_last()。 你可以從boost trac獲得這個補丁:Ticket #9352

相關問題