在声明一个集合时,
set <int, greater <int> > gquiz1;为什么我们使用greater <int>
. 我是新手,我参考了其他文章,但它们不太令人信服。
std::set 是一个包含一组有序对象的容器。
对象的顺序由第二个参数决定。默认情况下,它是std::less<Key>. 有关其他详细信息,请参阅std::set的定义。但是,您可以通过使用您自己的Compare类型作为第二个参数来覆盖默认参数,就像您在发布的代码中所做的那样。
例如
std::set<int> set1; // Use default compare class, std::less<int>
set1.insert(10);
set1.insert(5);
set1.insert(7);
Run Code Online (Sandbox Code Playgroud)
上述容器中对象的顺序将是 5、7 和 10。容器中的对象按升序排列。
如果你使用
std::set<int, std::greater<int>> set2;
set2.insert(10);
set2.insert(5);
set2.insert(7);
Run Code Online (Sandbox Code Playgroud)
上述容器中对象的顺序为 10、7 和 5。容器中的对象按降序排列。