erase:删除的对象可以是某个迭代器位置上的元素、等于某键值的元素、一个区间上的元素和清空集合(clear)。 find:对集合进行搜索,如果找到查找的键值,返回该键值的迭代器位置,否则,返回最后一个元素后面的位置,即end(). set使用insert()将元素插入到集合中,根据设定的比较函数将该元素放到该放的节点上去。默认的比...
st.erase(st.find(2));//利用find()函数先找到2,然后erase删除它 st.erase(3);//删除set中值为3的元素,时间复杂度为O(logN) set<int>::iterator it=st.find(4); st.erase(it,st.end());//删除元素2到set末尾之间的数,也就是4,5 st.clear(); int len_clear=st.size();//0 return 0; }...
classSolution{public:intfindKthLargest(vector<int>&nums,int k){//建小堆priority_queue<int,vector<int>,greater<int>>q(nums.begin(),nums.begin()+k);for(size_t i=k;i<nums.size();++i){if(nums[i]>q.top()){q.pop();q.push(nums[i]);}}returnq.top();}}; 2. priority_queue的...
int FindMin( PriorityQueue H ) { if( !IsEmpty( H ) ) return H->Elements[ 1 ]; cout << "队列为空!" << endl; return H->Elements[ 0 ]; } void PrintHeap( PriorityQueue H ) { if( IsEmpty( H ) ) cout << "队列为空!" << endl; else{ for( int i = 1; i <= H->Size...
classSolution{public:intfindKthLargest(vector<int>& nums,intk){//使用topk问题的求解方式priority_queue<int,vector<int>,greater<int>>pq(nums.begin(),nums.begin()+k);for(inti = k;i < nums.size();i++) {if(nums[i] > pq.top()) ...
class Solution {public:int findKthLargest(vector<int>& nums, int k) {//建堆 O(N)priority_queue<int> maxHeap(nums.begin(), nums.end());//O(logN* K)while(--k){maxHeap.pop();}return maxHeap.top();}}; 一. priority_queue的模拟实现 ...
cout<<"Donot Find"<<endl; 清空map中的数据可以用clear()函数,判定map中是否有数据可以用empty()函数,它返回true则说明是空 //如果要删除,用迭代器删除 map<int,string>::iterator iter; iter=mapStudent.find(1); mapStudent.erase(iter); //如果要删除,用关键字删除 ...
class Solution { public: int findKthLargest(vector<int>& nums, int k) { //小堆 priority_queue<int, vector<int>, greater<int>> minHeap(nums.begin(), nums.begin()+k); for(int i = k; i<nums.size(); i++) { if(nums[i]>minHeap.top()) { minHeap.pop(); minHeap.push(nums...
classSolution{public:intfindKthLargest(vector<int>&nums,int k){//建大堆priority_queue<int>pq(nums.begin(),nums.end());//前k-1个popwhile(--k){pq.pop();}returnpq.top();}}; 第二种:建K个数的小堆 代码语言:javascript 复制
map、set的底层是红黑树,插入、删除、查找的复杂度都是O(logN)unordered_set的底层是哈希表,插入、删除、查找的复杂度都是O(1)(在不考虑冲突的情况下,特殊情况下面会讨论)priority_queue是优先队列,只有push(O(logN))top(O(1))pop(O(logN))不支持随机删除,和查找。下面深入一点。c++的红黑树是不完整的...