我有一个向量的向量。如果它小于特定值或大于另一个值,我想读取它的第一个组件并将其从向量中删除。我怎样才能做到这一点?我的代码是:
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>&)'