C++ C++;
我有一个用0和1填充的整数数组。我正在寻找C/C++中获取1的位置(索引)的最快方法,类似于numpy中的where()函数 编辑1:因为我只存储位,所以一个字符数组也可以很好地完成这项工作 编辑2:示例: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;
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上搜索“比特旋转比特计数”.也许你应该提供一个输入和预期输出的例子。