更大的 <int> 在 Set 中的作用是什么?

Kis*_*e S 5 stl set c++11

在声明一个集合时, set <int, greater <int> > gquiz1;为什么我们使用greater <int> . 我是新手,我参考了其他文章,但它们不太令人信服。

R S*_*ahu 8

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。容器中的对象按降序排列。