函数中的默认"常量<int>向量 &id"参数



我具有以下功能:

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

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

double Fitter( ..., const vector<int> &id = empty_vector )

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

您可以默认构建一个空的向量内联:

double Fitter( ..., const vector<int> &id = std::vector<int>{} )

由于 id是一种恒定的参考,它将起作用。

在这种情况下, @some程序员的答案是完美的(如果您觉得有用的话,请访问他的答案):

double Fitter( ..., const vector<int> &id = std::vector<int>{} )

如果您发现无法实现默认值的情况,因为它是动态的,则可以编写一个过载:

double Fitter(double EBeam,
              vector<KFParticle> &MeasParticle, 
              vector<TLorentzVector> &RecoParticle,
              const vector<int> &id) 
{  
    // ... do something 
}
double Fitter(double EBeam,
              vector<KFParticle> &MeasParticle, 
              vector<TLorentzVector> &RecoParticle) 
{ 
  vector<int> id; // you could do something dynamic here instead
  return Fitter(EBeam, MeasParticle, RecoParticle, id);
}

最新更新