![](/img/trans.png)
[英]How can I sort a vector<pair<pair<float, float>, unsigned int>> by the first float, and if there's a tie the second float?
[英]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->first
和p->second
,而不是p.first
和p.second
。
在這里,您將要編寫XYPair key = iter->first;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.