簡體   English   中英

默認`const向量 <int> 函數中的&id`參數

[英]Default `const vector<int> &id` argument in function

我有以下功能:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM