14
以及如何在C++中执行此操作?我可以定义一个键是结构的地图吗?
以及如何在C++中执行此操作?我可以定义一个键是结构的地图吗?
只要它实现operator<
(加上存储在容器中的值的通常复制和分配要求),您就可以使用任何类型作为映射关键字。
例如:
struct example { int x; }
bool operator < (const example &l, const example &r) { return l.x < r.x; }
std::map<example, int> values;
或者,可以提供一个比较函数作为地图模板而不是限定operator<
的第三个参数。更多详情here(参数Compare
)。
“只要它实现了一个运算符<” - 或者这个类型有一个专门的'std :: less'。 'map'默认使用'less','less'默认使用'operator'',所以有两条路由进来。 – 2010-10-14 17:42:54