ベクトルのベクトルがあります。最初のコンポーネントを読み取り、特定の値よりも小さい場合、または別の値よりも大きい場合は、ベクトルから削除したいと思います。これどうやってするの?私のコードは次のとおりです。
int d = sum_et.size();
vector <float>sum_et
vector <float>sum_ieta_iphi;
vector <vector<float> >v;
sum_et.push_back(energySum);
sum_ieta_iphi[0]=energySum;
sum_ieta_iphi[1]=ieta;
sum_ieta_iphi[2]=iphi;
v.push_back(sum_ieta_iphi);
float max,min;
max=sum_et[(int)(19/20*d)];
min=sum_et[(int)(d/20)];
for (int i=0;i<v.size();i++){
/* line 312 */ if (v[i[0][0][0]]<min || v[i[0][0][0]]>max){
/* line 313 */ v.erase(v[i]);
}
}
次のエラーが表示されます。
Analysis.cc:312:16: error: invalid types 'int[int]' for array subscript
Analysis.cc:312:37: error: invalid types 'int[int]' for array subscript
Analysis.cc:313:14: error: no matching function for call to 'std::vector<std::vector<float> >::erase(std::vector<float>&)'