gpt4 book ai didi

c++ - 使用指向 vector vector 的唯一指针成员初始化模板化矩阵类

转载 作者:行者123 更新时间:2023-11-28 06:40:57 25 4
gpt4 key购买 nike

我有

template<class T>
class Matrix{
public:
Matrix();
~Matrix();

private:
std::unique_ptr<std::vector<std::vector<T> > > PtrToMyMatrix;

};

我在初始化 PtrToMyMatrix 时遇到困难。假设构造函数应该只在 PtrToMyMatrix 中放入一个指向 T 的 1x1 矩阵的指针。我该如何写这个?

我想是这样的

Matrix<T>::Matrix():PtrToMyMatrix(//Here it goes the value
){};

在值(value)的地方我想它应该是这样的

new std::unique_ptr<vector<vector<T> > >(// Here a new matrix
)

在新矩阵的地方我想它是这样的

new vector<vector<T> >(// Here a new vector
)

在新 vector 的位置

new vector<T>(new T())

应该怎样?

最佳答案

我想你是在追求这个:

std::unique_ptr<std::vector<std::vector<T> > >
PtrToMyMatrix(new std::vector<std::vector<T> >(1, std::vector<T>(1)));

构造函数是 std::vector(size_type n, const value_type& val);(缺少分配)。

所以你用 1 构造外部 vector 内部 vector 是用 1 T 构造的

然而,很少需要动态创建 std::vector,因为它已经动态存储了其内部数据。您通常只需按值实例化它:

std::vector<std::vector<T> > MyMatrix(1, std::vector<T>(1));

关于c++ - 使用指向 vector vector 的唯一指针成员初始化模板化矩阵类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com