簡體   English   中英

訪問地圖中的.first或.second時出錯 <std::pair<float,float> ,std :: vector <float> &gt;

[英]Getting error when accessing .first or .second in map <std::pair<float,float>, std::vector<float> >

因此,我試圖遍歷一張地圖,其關鍵是一對浮點數,其值是浮點數的向量。 我在stackoverflow上跟蹤了有關如何訪問鍵和值的不同示例,但是在使用.first或.second時遇到了問題。 這是我的設置。

typedef std::pair<float, float> XYPair;
typedef std::map<XYPair, std::vector<float> > VectorsMap;

VectorsMap points;
VectorsMap::iterator iter;

//some function that spits back a VectorsMap map.
points = fileParser.parseFile();

//iterate over all vectors
for (iter = points.begin(); iter != points.end(); iter++) {
    XYPair key = iter.first;
}

這是錯誤:

myMain.cpp: In function âint main(int, char**)â:
myMain.cpp:21: error: âstruct std::_Rb_tree_iterator<std::pair<const std::pair<float, float>, std::vector<float, std::allocator<float> > > >â has no member named âsecondâ
make: *** [myMain.o] Error 1

我以前沒有使用過迭代器,所以請給我一些時間。

迭代器具有與指針相似的接口。 如果您有指向一對的指針p ,則必須編寫p->firstp->second ,而不是p.firstp.second

在這里,您將要編寫XYPair key = iter->first;

暫無
暫無

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

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