簡體   English   中英

使用std :: pair鍵和值在地圖中添加b2vec2

[英]Adding a b2vec2 in a map with std::pair key and value

嘗試向地圖添加元素時出現錯誤,這是我的簡化代碼:

我有一張地圖:

std::map<std::pair<std::string, std::pair<int, b2Vec2> >, std::pair<std::string, std::pair<int, b2Vec2> > > myMap; `  

b2Vec2 rVec (1, 1)  
std::pair<std::string, std::pair<int, b2Vec2> > partA (std::make_pair ("test", std::make_pair(1, rVec ) ) );  
std::pair<std::string, std::pair<int, b2Vec2> > partB (std::make_pair ("testb", std::make_pair(1, rVec ) ) );` 

myMap[partA] = partB; //When I add this line i get an error when compiling.`

我收到錯誤:“對二進制表達式無效的操作數('const b2Vec2'和'const b2Vec2')。” 如果我在myMap定義和初始化myMap每個b2Vec2類型都替換為int類型,則它將起作用。 所以我認為b2Vec2只是一個問題,但我不明白。

std::map用作鍵的類型需要為其定義一個小於比較運算符( operator< )。 std::pair定義了其中之一,這要求為該對中的類型定義operator<

在您的情況下,由於b2Vec2類型未定義operator<因此出現了編譯錯誤。

暫無
暫無

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

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