c ++容器如何“设置”识别两个相等的键?

问题描述 投票:2回答:1

其声明如下:

template<class T,class Compare=less<T>,class Alloc=allocator<T>> class set;

众所周知,“集合”中没有两个相等的键。它使用“比较”(默认为less<T>)来比较两个键,这意味着它只能知道一个键少(less<T>返回true)或不少(less<T>返回false)比另一个。

set如何避免存在两个相等的键?

c++ stl set
1个回答
6
投票

std::set确定元素的唯一性如下。

(强调我的)

标准库的每个地方都使用比较要求,唯一性通过使用等价关系来确定。用不精确的术语来说,如果两个对象ab都没有比另一个低,那么它们被认为是等价的:!comp(a, b) && !comp(b, a)

© www.soinside.com 2019 - 2024. All rights reserved.