c++ 如何修改此函数的参数用法

rseugnpd  于 2023-01-28  发布在  其他
关注(0)|答案(2)|浏览(135)

我有一个带构造函数的函数:

std::vector<std::vector<double>>& getTrainSet()  { return trainSet; }
void setTrainSet(const std::vector<std::vector<double>>& trainSet) { this->trainSet = trainSet; }

它的名字是这样的:

testNet.setTrainSet(std::vector<std::vector<double>>() = {
        { 1.0, 1.0, 0.73 },{ 1.0, 1.0, 0.81 },{ 1.0, 1.0, 0.86 },
        { 1.0, 1.0, 0.95 },{ 1.0, 0.0, 0.45 },{ 1.0, 1.0, 0.70 },
        { 1.0, 0.0, 0.51 },{ 1.0, 1.0, 0.89 },{ 1.0, 1.0, 0.79 },{ 1.0, 0.0, 0.54 } 
        });

我如何修改这个函数,使它允许我像这样传递变量:testNet.setTrainSet(vector);

dsekswqp

dsekswqp1#

你也可以用两种方法来做,
1.先声明然后通过,

std::vector<std::vector<double>> vec = {
    { 1.0, 1.0, 0.73 }, { 1.0, 1.0, 0.81 }, { 1.0, 1.0, 0.86 },
    { 1.0, 1.0, 0.95 }, { 1.0, 0.0, 0.45 }, { 1.0, 1.0, 0.70 },
    { 1.0, 0.0, 0.51 }, { 1.0, 1.0, 0.89 }, { 1.0, 1.0, 0.79 },
    { 1.0, 0.0, 0.54 }
};

testNet.setTrainSet(vec);

1.或者通过将其直接传递到设置器中。

testNet.setTrainSet({
    { 1.0, 1.0, 0.73 }, { 1.0, 1.0, 0.81 }, { 1.0, 1.0, 0.86 },
    { 1.0, 1.0, 0.95 }, { 1.0, 0.0, 0.45 }, { 1.0, 1.0, 0.70 },
    { 1.0, 0.0, 0.51 }, { 1.0, 1.0, 0.89 }, { 1.0, 1.0, 0.79 },
    { 1.0, 0.0, 0.54 }
});
hs1rzwqc

hs1rzwqc2#

也许你试图在调用函数之前声明向量?

std::vector<std::vector<double>> vec = {
    { 1.0, 1.0, 0.73 },{ 1.0, 1.0, 0.81 },{ 1.0, 1.0, 0.86 },
    { 1.0, 1.0, 0.95 },{ 1.0, 0.0, 0.45 },{ 1.0, 1.0, 0.70 },
    { 1.0, 0.0, 0.51 },{ 1.0, 1.0, 0.89 },{ 1.0, 1.0, 0.79 },{ 1.0, 0.0, 0.54 } 
    });
testNet.setTrainSet(vec);

相关问题