コード例 #1
0
ファイル: wt_int_rlmn.hpp プロジェクト: tb37/sdsl-lite
 /*!
  *  \param i The ith occurrence. \f$i\in [1..rank(size(),c)]\f$.
  *  \param c The symbol c.
  *  \par Time complexity
  *		\f$ \Order{H_0} \f$ on average, where \f$ H_0 \f$ is the zero order
  *      entropy of the sequence
  */
 size_type select(size_type i, value_type c)const {
     assert(i > 0);
     assert(i <= rank(size(), c));
     size_type c_runs = m_bf_rank(m_C[c]+i) - m_C_bf_rank[c];
     size_type offset = m_C[c] + i - 1 - m_bf_select(c_runs + m_C_bf_rank[c]);
     return m_bl_select(m_wt.select(c_runs, c)+1) + offset;
 };