Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;_C++_Where - Fatal编程技术网

C++ C++;

C++ C++;,c++,where,C++,Where,我有一个用0和1填充的整数数组。我正在寻找C/C++中获取1的位置(索引)的最快方法,类似于numpy中的where()函数 编辑1:因为我只存储位,所以一个字符数组也可以很好地完成这项工作 编辑2:示例: char a[5]; a[0]=0; a[1]=1; a[2]=1; a[3]=0; a[4]=1; 应该回来 1,2,4 数组的类型并不重要,但是我必须尽快找到1的位置。如果只存储位,我想您可以使用bool类型,而不是char const unsigned int size = 5;

我有一个用0和1填充的整数数组。我正在寻找C/C++中获取1的位置(索引)的最快方法,类似于numpy中的where()函数

编辑1:因为我只存储位,所以一个字符数组也可以很好地完成这项工作

编辑2:示例:

char a[5];
a[0]=0;
a[1]=1;
a[2]=1;
a[3]=0;
a[4]=1;
应该回来

1,2,4

数组的类型并不重要,但是我必须尽快找到1的位置。

如果只存储位,我想您可以使用bool类型,而不是char

const unsigned int size = 5;

bool bits[size] = {0 , 1 , 0 , 1 , 0};
std::vector<unsigned int> indices;

auto ptr = &bits[0];
for (int i = 0; i<size; i++, ptr++)
{
    if (*ptr) indices.push_back (i);    
}
const unsigned int size=5;
布尔位[size]={0,1,0,1,0};
std::向量指数;
自动ptr=&位[0];

对于(int i=0;如果你不发布一些代码(什么类型的数组,什么内容……),我就帮不了你)。Python没有
where
函数。它是
numpy
的一部分,而不是Python标准库的一部分。谢谢你的评论,我编辑了这篇文章。在web上搜索“比特旋转比特计数”.也许你应该提供一个输入和预期输出的例子。