函数中默认的`const vector <int>&id`参数

LRD*_*RDX 2 c++ vector

我有以下功能:

double Fitter(double EBeam, vector<KFParticle>
&MeasParticle, vector<TLorentzVector> &RecoParticle,
const vector<int> &id) {  
   do something
}
Run Code Online (Sandbox Code Playgroud)

但有时我不想提供最后一个参数(id向量).我需要这样的东西:

double Fitter( ..., const vector<int> &id = empty_vector )
Run Code Online (Sandbox Code Playgroud)

但我不想创建一些静态向量.

Som*_*ude 5

您可以默认构造一个内嵌的空向量:

double Fitter( ..., const vector<int> &id = std::vector<int>{} )
Run Code Online (Sandbox Code Playgroud)

既然id是一个恒定参考,它将起作用.

  • 如果您的编译器接受`= std :: vector <int> {}`,它也会接受`= {}`,这使得代码更容易阅读并且不会违反DRY. (2认同)