我是 STL 新手。关于使用 map 存储任意对象让我感到困惑的事情:
std::map<MyClassObj, MyDataObject> MyMap;
是我查找对象的方式。例如,MyMap.find (MyClassObjInstance) 将如何工作?我是否需要实现自己的迭代器并提供一些包含一些等价函数的标准函数?任何示例将不胜感激。
是否有另一种方法可以使用标准库存储任意对象的关联列表?我已经在使用 STL 来维护平台的可移植性,并且不希望添加另一个库依赖项,例如 BOOST。
最佳答案
std::map
在 key 和 value 之后有第三个模板参数,表示将使用哪个函数来比较键。默认情况下,它是 std::less
,它又使用 operator<
.因此,如果您的类有一个运算符<,没关系,否则您可以提供自己的比较器。
关于c++ - 如果我打算使用任意类对象作为键,我可以使用 STL 映射吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1380567/