c++ - 多维 std::valarray 和不等式

标签 c++ multidimensional-array compiler-errors valarray

以下代码无法编译:

#include <valarray>

int main()
{
   std::valarray<std::valarray<int>> a;
   std::valarray<std::valarray<int>> b;
   //std::valarray<std::valarray<bool>> c;
   std::valarray<bool> c;
   c = (a == b);
   return 0;
}

c 的声明均无法编译。是否允许以上述方式使用 valarray 或对其使用方式有限制。

最佳答案

我相信我有 solution ,虽然我可能是错的。

因为 beginendnon-member overloads , 你使用 begin(a)而不是 a.begin()等等。

我使用 std::transform 的选择是你想遍历 ab ,比较它们,并将结果存储在 c 中,这就是 lambda 返回 std::valarray<bool> 的原因(而不是 bool )。

   std::valarray<std::valarray<int>> a;
   std::valarray<std::valarray<int>> b;
   std::valarray<std::valarray<bool>> c;

   std::transform(begin(a), end(a), begin(b), begin(c),
   [&] (std::valarray<int> a_val, std::valarray<int> b_val) 
       -> std::valarray<bool> {
       return std::valarray<bool>(a_val == b_val);
   });

关于c++ - 多维 std::valarray 和不等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20278483/

相关文章:

c++ - 将char类型赋值给int打印对应的ASCII字符

c - 错误 : A label can only be part of a statement

C++ 指针机制 - 错误 2440

c++ - 无法结合模板和类函数重载

c++ - CUDA 简单数组搜索 - 共享内存

c++ - 传递右值加注不能绑定(bind)到左值

java - 2D字符格式数组

php - 为什么我不能对嵌套数组进行数字排序?

java - 在Java中导入ascii世界地图

c++ - #include <WinUsb.h> 在 MFC 应用程序中产生编译器错误