gpt4 book ai didi

c++ - 在具有 std::pair 键和值的映射中添加 b2vec2

转载 作者:行者123 更新时间:2023-11-28 01:44:16 24 4
gpt4 key购买 nike

当我尝试向我的 map 添加元素时出现错误,这是我的简化代码:

我有一张 map :

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 定义和初始化中用 int 类型替换每个 b2Vec2 类型,它就可以工作。所以我认为 b2Vec2 只是一个问题,但我不明白。

最佳答案

std::map 中用作键的类型需要为其定义一个小于比较运算符 ( operator< )。 std::pair定义其中之一,这需要 operator<为对中的类型定义。

在您的情况下,您会收到编译错误,因为 b2Vec2类型未定义 operator< .

关于c++ - 在具有 std::pair 键和值的映射中添加 b2vec2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45850143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com