gpt4 book ai didi

c++ - 无法在我的 C++ 类中初始化二维 vector

转载 作者:行者123 更新时间:2023-11-30 01:43:40 24 4
gpt4 key购买 nike

我已经阅读了我能找到的关于这个主题的所有帖子,但无法弄清楚我做错了什么。我无法成功初始化我的 2d vector ,它是我类的一个成员变量。头文件是:

class Beam2
{
private:
/*The following unit vectors should never be accessed directly
and are therefore private.*/
std::vector<std::vector<double> > unitVectors;

public:
//constructor
Beam2(
Node * node1PtrInput, Node * node2PtrInput,
double orientAngleInput);

我的cpp文件

Beam2::Beam2(
Node * node1PtrInput, Node * node2PtrInput, double orientAngleInput){
node1Ptr = node1PtrInput;
node2Ptr = node2PtrInput;
orientAngle = orientAngleInput;
unitVectors(3, std::vector<double>(3));
updateUnitVectors();

错误是:错误:对‘(std::vector >) (int, std::vector)’的调用不匹配 unitVectors(3, std::vector(3)); ^任何帮助,将不胜感激。

最佳答案

下面是初始化类的正确方法:

Beam2::Beam2(Node * node1PtrInput, Node * node2PtrInput, double orientAngleInput) :
node1Ptr(node1PtrInput),
node2Ptr(node2PtrInput),
orientAngle(orientAngleInput),
unitVectors(3, std::vector<double>(3))
{
updateUnitVectors(); // I believe this is function in the class
}

您也可以通过替换 unitVectors(3, std::vector<double>(3)); 来修复您的代码与 unitVectors.resize(3, std::vector<double>(3));也是,但更喜欢前者。

关于c++ - 无法在我的 C++ 类中初始化二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370682/

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