Vector
1.将vector<int>中的元素全部置换为0
fill(vec.begin(), vec.end(), 0);
2.vector容器是可以直接用==比较是否值等的!
Unordered_set
1. unordered_set的删除(count的值也会减少)
2.unordered_map中的int默认值是0,可以直接使用。
Priority_queue
1.大根堆/小根堆的创建与记忆
priority_queue<int, vector<int>, greater<int>> heap;
这行代码在 C++ 中声明了一个优先队列
heap
,其元素类型为int
,使用vector<int>
作为其底层容器,并且指定了greater<int>
作为比较函数对象。这里的关键是
greater<int>
的使用,它告诉priority_queue
以相反于默认方式来比较元素。默认情况下,priority_queue
是一个最大堆(大根堆),即堆顶元素是最大的。但是,通过使用greater<int>
,它将变为最小堆(小根堆),即堆顶元素是最小的。
-
默认情况:如果你不指定第三个模板参数,默认情况下
priority_queue
是一个最大堆。这是因为默认的比较是less<int>
,它将最大的元素放在堆顶。 -
使用
greater
:当你使用greater<int>
作为第三个模板参数时,它改变了元素的比较方式,使得比较结果相反。因此,原本应该是最大的元素现在变成了最小的,堆变成了最小堆。 -
记住关键字:
less
通常意味着“较少”,在默认情况下它创建了一个最大堆。而greater
意味着“更多”,使用它创建了一个最小堆