本文整理汇总了C++中std::bitset::count方法的典型用法代码示例。如果您正苦于以下问题:C++ bitset::count方法的具体用法?C++ bitset::count怎么用?C++ bitset::count使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类std::bitset
的用法示例。
在下文中一共展示了bitset::count方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: timer
std::pair<Matrix, std::vector<Label>> filterDataset(const Matrix &A, const std::vector<Label> &labels, const std::bitset<K> &filter) {
Timer timer("Filter Dataset Timer");
if (K < labels.size() || filter.count() <= 1) {
std::stringstream fmt;
fmt << "Filtro para el dataset tiene tamaño " << K << " cuando el dataset tiene tamaño " << labels.size();
throw new std::invalid_argument(fmt.str());
}
std::vector<Label> output(filter.count(), 0.0);
int last = 0;
for (int i = 0; i < A.rows(); ++i) {
if (filter.test((std::size_t) i)) {
output[last] = labels[i];
last++;
}
}
return std::pair<Matrix, std::vector<Label>>(Matrix(A, filter), output);
}
示例2: confidence_get_unitbitset
void Apriori::confidence_get_unitbitset(
const std::bitset<NUM> &r_bsdata,
std::vector<IndexBitSet_t> &r_unitbitset)
{
std::bitset<NUM> b(0x01);
int count = r_bsdata.count();
r_unitbitset.clear();
for(int i=0; i<NUM; i++){
if((r_bsdata & b) == b ){
r_unitbitset.push_back(this->get_index( b ));
if(--count <= 0) break;
}
b <<= 1;
}
}
示例3: bitsetMultiply
void bitsetMultiply(std::bitset<N>& x, const std::bitset<N>& y)
{
std::bitset<N> tmp = x;
x.reset( );
// we want to minimize the number of times we shift and add
if (tmp.count( ) < y.count( )) {
for (int i=0; i < N; i++)
if (tmp[i]) bitsetAdd(x, y << i);
}
else {
for (int i=0; i < N; i++)
if (y[i]) bitsetAdd(x, tmp << i);
}
}
示例4: main
int main()
{
int substr_len;
//use the number of unique characters as number base
int base;
scanf("%d %d", &substr_len, &base);
scanf("%s", str);
int length = strlen(str);
if(length < substr_len)
{
printf("0\n");
return 0;
}
int unique_character = 0;
int index = 0;
while(unique_character < base)
{
if(value[str[index]] == 0)
value[str[index]] = unique_character++;
index++;
}
long rolling_hash = 0;
for(int i = 0; i < substr_len; ++i)
rolling_hash = rolling_hash * base + value[str[i]];
mark[rolling_hash] = 1;
// Calculate hash value for next window of text: Remove leading digit, add trailing digit
// hash(s[i+1 ... i+m] ) = base *(hash(s[i .. s+i-1]) – s[i] * (b^(m-1) ) )+ s[i + m]
//h = pow(base, substr_len - 1)
int h = 1;
for (int i = 0; i < substr_len - 1; i++)
h *= base; //int overflow?
for(int i = 0; i < length - substr_len; i++)
{
rolling_hash = base *(rolling_hash - value[str[i]] * h) + value[str[i + substr_len]];
mark[rolling_hash] = 1;
}
printf("%ld\n", mark.count());
return 0;
};
示例5: main
int main()
{
while(scanf("%d%d%d", &n, &m, &q) == 3 && n + m + q)
{
for(int i = 0; i < n; ++i)
scanf("%d%d%d%d", &cir[i].x, &cir[i].y, &cir[i].z, r + i);
for(int i = 0; i < m; ++i)
scanf("%d%d%d%d", &lht[i].x, &lht[i].y, &lht[i].z, val + i);
scanf("%d%d%d", &obj.x, &obj.y, &obj.z);
for(int i = 0; i < n; ++i)
cir[i] = cir[i] - obj;
for(int i = 0; i < m; ++i)
{
lht[i] = lht[i] - obj;
dis[i] = lht[i].mode();
cnt[i].reset();
for(int j = 0; j < n; ++j)
{
int sgn1 = sgn((lht[i] - cir[j]).mode() - r[j] * r[j]);
int sgn2 = sgn(cir[j].mode() - r[j] * r[j]);
if(sgn1 * sgn2 < 0
|| sgn1 > 0 && sgn2 > 0 && lht[i].det(cir[j]).mode() < r[j] * r[j] * (LL)dis[i]
&& lht[i].dot(lht[i] - cir[j]) > 0 && lht[i].dot(cir[j]) > 0)
cnt[i].set(j);
}
}
double ans = 0;
for(int i = 0; i < 1 << m; ++i)
{
double value = 0;
cost.reset();
for(int j = 0; j < m; ++j)
if((i >> j) & 1)
{
cost |= cnt[j];
value += (double)val[j] / dis[j];
}
if((int)cost.count() <= q && ans < value)
ans = value;
}
printf("%.10f\n", ans);
}
return 0;
}
示例6: printFlags
void printFlags(std::ostream &out, std::bitset<N> const &flags) {
std::size_t count = flags.count();
if (count == 0) {
out << "none";
} else {
std::size_t j = 0;
for (std::size_t i = 0; i < N; ++i) {
if (flags.test(i)) {
if (count == 2 && j == count - 1) {
out << " and ";
} else if (count >= 3 && j >= 1 && j < count - 1) {
out << ", ";
} else if (count >= 3 && j == count - 1) {
// Serial comma.
out << ", and ";
}
out << T(i);
++j;
}
}
}
}