我想将 a 中的每个元素的std::vector<size_t>
长度256
增加一,但取决于 a 的相同位置std::bitset<256>
(如果相等1
)。
下面的代码可以在这里编辑/编译。
我的问题是,我可以摆脱for
循环并使用一些快速的逻辑运算符吗?
#include <iostream>
#include <bitset>
#include <vector>
#include <iterator>
#include <algorithm>
#define SIZE 3
int main() {
size_t size=SIZE;
std::vector<size_t> v(SIZE); v={3,0,7};
std::bitset<SIZE> b("110");
for (size_t i=0; i<size; ++i)
{
if (b[size-1-i]) // reverse
{
++v[i];
}
}
std::copy ( v.begin()
, v.end()
, std::ostream_iterator<size_t>(std::cout, ",") );
// 3+1,0+1,7+0
// => 4,1,7
return 0;
}