繁体   English   中英

Armadillo向量的按位运算

[英]Bitwise operations on Armadillo vectors

我需要在两个向量之间进行按位运算。 我不想使用循环。 我正在使用犰狳。 有人可以帮我吗?

编辑:

所谓矢量,是指Armadillo库提供的矢量模板。 像这样:

urowvec newvec1 =零<urowvec>(5);

urowvec newvec2 =个<urowvec>(5);

urowvec newvec3 = newvec1 | newvec2;

但这给我犰狳的错误。

谢谢

如果执行此操作:

inline urowvec operator|(const urowvec& lhs, urowvec& rhs){
  // ToDo - operate on an element by element basis, and return
  // a urowvec. Decide on something reasonable if the vectors
  // differ in size.
}

并确保将其包含在每个需要该运算符的编译单元中,然后urowvec newvec3 = newvec1 | newvec2; urowvec newvec3 = newvec1 | newvec2; 有效。

您可以对其他按位运算符执行相同的操作。

任何合理的编译器都会忽略值副本。

进行按位运算使用按位运算符

 |   bitwise or
 &   bitwise and
 ^   bitwise xor
 ~   bitwise not
<<  bitwise shift left
>>  bitwise shift right

如果您提出了更具体的问题,则可能会得到更具体的答案。 向量是指std :: vector,它是整数的向量吗? 还是指位数组?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM