犰狳向量的按位运算
Bitwise operations on Armadillo vectors
我需要在两个向量之间进行按位运算。我不想使用循环。
我正在使用犰狳。谁能帮我解决这个问题?
编辑:
矢量是指 Armadillo 库提供的矢量模板。像这样:
urowvec newvec1 = zeros < urowvec >(5);
urowvec newvec2 = ones < urowvec >(5);
urowvec newvec3 = newvec1 | newvec2;
但这给了我犰狳错误。
谢谢
使用位运算符进行位运算
| bitwise or
& bitwise and
^ bitwise xor
~ bitwise not
<< bitwise shift left
>> bitwise shift right
如果您提出更具体的问题,您可能会得到更具体的答案。向量是指 std::vector,它是整数向量吗?或者你的意思是一组位?
如果你实现这个:
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;
将有效。
您可以对其他按位运算符执行相同的操作。
任何合理的编译器都会删除值副本。
我需要在两个向量之间进行按位运算。我不想使用循环。 我正在使用犰狳。谁能帮我解决这个问题?
编辑:
矢量是指 Armadillo 库提供的矢量模板。像这样:
urowvec newvec1 = zeros < urowvec >(5);
urowvec newvec2 = ones < urowvec >(5);
urowvec newvec3 = newvec1 | newvec2;
但这给了我犰狳错误。
谢谢
使用位运算符进行位运算
| bitwise or
& bitwise and
^ bitwise xor
~ bitwise not
<< bitwise shift left
>> bitwise shift right
如果您提出更具体的问题,您可能会得到更具体的答案。向量是指 std::vector,它是整数向量吗?或者你的意思是一组位?
如果你实现这个:
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;
将有效。
您可以对其他按位运算符执行相同的操作。
任何合理的编译器都会删除值副本。