小编Puc*_*co4的帖子

使用std :: make_shared以std :: array作为参数来初始化std :: shared_ptr

我不明白为什么这样可以正常工作:

std::array<double, 2> someArray = {0,1};
std::shared_ptr<MyClass> myobj = std::make_shared<MyClass>(someArray);
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

std::shared_ptr<MyClass> myobj = std::make_shared<MyClass>({0,1});
Run Code Online (Sandbox Code Playgroud)

编译器说:

too many arguments to function ‘std::shared_ptr< _Tp> std::make_shared(_Args&& ...)
...
candidate expects 1 argument, 0 provided
Run Code Online (Sandbox Code Playgroud)

问题:有人可以弄清楚为什么会发生这种情况吗?是否有办法在不定义额外变量的情况下解决第二种方法?


编辑:的 示例MyClass

#include <memory> //For std::shared_ptr
#include <array>
#include <iostream>

class MyClass{
  public:
    MyClass(std::array<double, 2> ){
      std::cout << "hi" << std::endl;
    };
};

Run Code Online (Sandbox Code Playgroud)

c++ std shared-ptr c++11

3
推荐指数
1
解决办法
88
查看次数

如何在位于向量数组中的向量之间向量化 np.dot?

变量:

x 和 y 是形状为 (N, 2) 的 N 个二维向量数组。

题:

有没有办法在两个数组中对应于相同位置的向量之间执行点积,而无需像列表理解那样显式地编写元素:[np.dot(x[i], y[i]) for i in range(N)]

通常,在 numpy 的其他函数中,我使用该选项axis = 1来实现这一点,但我发现 np.dot 中不存在它。有没有办法设法矢量化这个操作?

python numpy vectorization numpy-ndarray

1
推荐指数
1
解决办法
45
查看次数

标签 统计

c++ ×1

c++11 ×1

numpy ×1

numpy-ndarray ×1

python ×1

shared-ptr ×1

std ×1

vectorization ×1