Exemplo n.º 1
0
 /** Return true if \p bv1 i less than \p bv2
     Lexicographical order, with bit vectors written LSB first.
     \param[in] bv1 A bit vector
     \param[in] bv2 Another bit vector
     \return true if equal, false otherwise
 */
 bool operator< (const OBBitVec & bv1, const OBBitVec & bv2)
 {
   bool rtn = false;
   int next_bit_1 = bv1.NextBit(-1);
   int next_bit_2 = bv2.NextBit(-1);
   bool should_continue = true;
   while (should_continue)
     {
     should_continue = false;
     if (next_bit_1 == -1)
       rtn = (next_bit_2 == -1 ? false : true);
     else if (next_bit_2 == -1)
       rtn = false;
     else if (next_bit_2 < next_bit_1)
       rtn = true;
     else if (next_bit_1 < next_bit_2)
       rtn = false;
     else
       {
       next_bit_1 = bv1.NextBit(next_bit_1);
       next_bit_2 = bv2.NextBit(next_bit_2);
       should_continue = true;
       }
     }
   return rtn;
 }