本文整理汇总了C++中bit_vector::bit_num方法的典型用法代码示例。如果您正苦于以下问题:C++ bit_vector::bit_num方法的具体用法?C++ bit_vector::bit_num怎么用?C++ bit_vector::bit_num使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bit_vector
的用法示例。
在下文中一共展示了bit_vector::bit_num方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: similar_row
void bit_index_storage::similar_row(
const bit_vector& bv,
vector<pair<string, float> >& ids,
uint64_t ret_num) const {
ids.clear();
uint64_t bit_num = bv.bit_num();
if (bit_num == 0) {
return;
}
heap_type heap(ret_num);
for (bit_table_t::const_iterator it = bitvals_diff_.begin();
it != bitvals_diff_.end(); ++it) {
similar_row_one(bv, *it, heap);
}
for (bit_table_t::const_iterator it = bitvals_.begin(); it != bitvals_.end();
++it) {
if (bitvals_diff_.find(it->first) != bitvals_diff_.end()) {
continue;
}
similar_row_one(bv, *it, heap);
}
vector<pair<uint64_t, string> > scores;
heap.get_sorted(scores);
for (size_t i = 0; i < scores.size() && i < ret_num; ++i) {
ids.push_back(make_pair(scores[i].second,
static_cast<float>(scores[i].first) / bit_num));
}
}
示例2: ranking_hamming_bit_vectors
void ranking_hamming_bit_vectors(
const bit_vector& query,
const const_bit_vector_column& bvs,
vector<pair<uint64_t, float> >& ret,
uint64_t ret_num) {
storage::fixed_size_heap<pair<uint32_t, uint64_t> > heap(ret_num);
for (uint64_t i = 0; i< bvs.size(); ++i) {
const size_t dist = query.calc_hamming_distance(bvs[i]);
heap.push(make_pair(dist, i));
}
vector<pair<uint32_t, uint64_t> > sorted;
heap.get_sorted(sorted);
ret.clear();
const float denom = query.bit_num();
for (size_t i = 0; i < sorted.size(); ++i) {
ret.push_back(make_pair(sorted[i].second, sorted[i].first / denom));
}
}
示例3: bv
TEST(msgpack_pack, empty) {
const bit_vector bv(10);
EXPECT_EQ(NULL, bv.raw_data_unsafe());
msgpack::sbuffer buf;
msgpack::pack(buf, bv);
msgpack::unpacked unpacked;
msgpack::unpack(&unpacked, buf.data(), buf.size());
msgpack::object obj = unpacked.get();
ASSERT_EQ(msgpack::type::ARRAY, obj.type);
ASSERT_EQ(2u, obj.via.array.size);
const size_t bits = obj.via.array.ptr[0].as<uint64_t>();
const std::string data = obj.via.array.ptr[1].as<std::string>();
EXPECT_EQ(bv.bit_num(), bits);
EXPECT_EQ(bv.used_bytes(), data.size());
for (size_t i = 0; i < data.size(); ++i) {
EXPECT_EQ(0, data[i]);
}
}
示例4: equal
bool bit_vector::operator==(const bit_vector& v) const {
return v.bit_num() == bit_num()
&& equal(bits_.begin(), bits_.end(), v.bits_.begin());
}