[英]Vector in the initializer list of a class
我在一个.hpp
文件中定义了一个学习者列表/向量,如下所示:
std::vector<DecisionTree> learners_;
。
现在在构造函数中,它的用法如下:
Bagging::Bagging(const DataReader& dr, const int ensembleSize, uint seed) :
dr_(dr),
ensembleSize_(ensembleSize),
learners_({}) {
random_number_generator.seed(seed);
buildBag();
}
构造函数中发生了什么?
程序是否只尝试填充该向量中的两个实例,其中第一个是随机数,第二个是对函数的调用? 但是它如何工作,因为buildBag
返回一个决策树,而第二个参数返回一个整数,我们将其声明为buildBag
的向量?
为什么会有大括号({})
?
正如我一直使用Java和python编程一样,这很难理解,它不是来自任何书籍,而是来自代码示例。
dr_(dr), ensembleSize_(ensembleSize), learners_({})
:它们用于将Bagging
Class的对象变量初始化为调用构造函数时提供的特定值。
({})
意味着通过初始化列表将std::vector<DecisionTree> learners_
初始化为一个空向量(这是C ++ 11的事情)。
{
random_number_generator.seed(seed);
buildBag();
}
最后,这些语句是Bagging
类的构造函数的主体。 创建对象时执行的普通命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.