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

编辑:

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

urowvec newvec1 =零(5);

urowvec newvec2 =个(5);

urowvec newvec3 = newvec1 | newvec2;

但这给我 Armadillo 的错误。

谢谢

最佳答案

如果执行此操作:

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;将有效。

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

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

关于c++ - Armadillo vector 的按位运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29034630/

10-12 16:25