我有地圖的矢量的C++從地圖矢量得到的矢量
map< int, vector<float> > hit = getAlignedHits();
我想獲得與特定鍵配對的載體,如:
vector<float> vec;
vec = hit[1];
錯誤我得到的是:
candidate function not viable: no known conversion from
vector<float, allocator<float>>
toconst vector<double, allocator<double>>
for 1st argumentvector& operator=(const vector& __x);
我嘗試以下,沒有工作:
&vec = hit[1];
error: expression is not assignable
我也試過以下,沒有工作:
map< int, vector<float> >::iterator itr;
itr = hit.find(1);
&vec = itr->second;
error: expression is not assignable
有誰知道爲什麼這些不工作,我怎麼能得到從地圖矢量?
感謝很多提前
編輯: 這裏是getAlignedHits確實和變量我使用的有:
const int NLayer = 6;, vector<float> *hit_position; double alignmentpar[NLayer];
map< int, vector<float> > getAlignedHits(){
double newpos;
for (int i=0; i<NLayer; i++) {
vector<float> bla;
bla.clear();
hit[i] = bla;
}
for (unsigned int ihit=0; ihit<layerID->size(); ihit++) {
newpos = hit_position->at(ihit) - alignmentpar[layerID->at(ihit)];
hit[layerID->at(ihit)].push_back(newpos);
}
}
不應該'VEC以下作品 - itr->第二;'工作?此外,錯誤似乎表明你正在調用一些'const'方法,另外你應該總是將'find'返回的迭代器與map的'end()'進行比較:if(itr!= hit.end() )vec = itr-> second;' – EdChum
我相信還有別的東西,你不會告訴我們這會導致這個錯誤。這看起來很好。 – DimChtz
@EdChum看看你的錯誤消息,你的示例代碼與錯誤不匹配。錯誤說你正在做矢量 vec; map >命中; vec = hit [1];' –
PeterT