当前位置: 首页>>代码示例>>C++>>正文


C++ bitset::count方法代码示例

本文整理汇总了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);
}
开发者ID:maanuel,项目名称:metnum-tp2,代码行数:21,代码来源:main.cpp

示例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;
    }
}
开发者ID:linails,项目名称:datamining,代码行数:15,代码来源:apriori.cpp

示例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);
  }
}
开发者ID:jervisfm,项目名称:ExampleCode,代码行数:15,代码来源:11-36.cpp

示例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;
};
开发者ID:jflyup,项目名称:POJ,代码行数:46,代码来源:1200.cpp

示例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;
}
开发者ID:tangjz,项目名称:acm-icpc,代码行数:44,代码来源:6188.cpp

示例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;
             }
         }
     }
 }
开发者ID:elemel,项目名称:monomi,代码行数:22,代码来源:print_flags.hpp


注:本文中的std::bitset::count方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。