我可以定义其键是结构的地图吗?

时间:2010-10-14 17:10:03

标签: c++ data-structures stl map

如何在C ++中完成?

1 个答案:

答案 0 :(得分:19)

您可以使用任何类型作为映射键,只要它实现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)。