std::map 的关键要求
在使用 std::map 时,会出现一个关于键类必须具备的特征的常见问题充当有效的密钥。
先决条件非常简单:密钥类必须提供复制和赋值功能。映射内的实际顺序由第三个模板参数或构造函数参数(如果指定)确定。此参数通常默认为 std::less 要自定义键排序,您可以创建一个比较运算符,最好作为函数对象。下面是假设类型 MyType 的此类运算符的示例: 请注意,此比较运算符必须定义严格的排序。具体来说,如果 CmpMyType()(a, b) 返回 true,则 CmpMyType()(b, a) 必须返回 false。如果两个表达式的计算结果均为 false,则元素被视为相等并且属于同一等价类。通过遵守这些要求,您可以扩展密钥类的功能,以有效地充当 std::map 中的有效密钥。struct CmpMyType
{
bool operator()(MyType const& lhs, MyType const& rhs) const
{
// Implementation of the comparison logic...
}
};
以上是类必须满足哪些关键要求才能用作 std::map 中的键?的详细内容。更多信息请关注PHP中文网其他相关文章!