您的位置:首页 > 游戏 > 手游 > 深圳市研发网站建设哪家好_网站快照优化公司_东营网站建设费用_sem优化是什么意思

深圳市研发网站建设哪家好_网站快照优化公司_东营网站建设费用_sem优化是什么意思

2025/1/1 20:40:40 来源:https://blog.csdn.net/qq_68286180/article/details/135050941  浏览:    关键词:深圳市研发网站建设哪家好_网站快照优化公司_东营网站建设费用_sem优化是什么意思
深圳市研发网站建设哪家好_网站快照优化公司_东营网站建设费用_sem优化是什么意思

目录

优先队列(priority_queue)

性质:

常用函数:

动态数组(vector)

性质:

常用函数:

哈希表(map,unordered_map)

性质:

常用函数:

集合(set,unordered_set)

性质:

常用函数:

双端队列(deque)

性质:

常用函数:


总结stl容器常用的函数

优先队列(priority_queue)

性质:

        自动排序,默认为大根堆

常用函数:

#include<bits/stdc++.h>
using namespce std;
struct cmp1{// 变为小根堆bool operator()(int a,int b){// b为堆顶元素return b<a;}
};
int main(){priority_queue<T,vector<T>,compare> pq;//增// 1.插入元素并对底层容器进行排序pq.push(value);// 2.原地构造元素并对底层容器进行排序(对构造vector元素可能会出错)pq.emplace(value);//删,删除顶部元素pq.pop();//查// 1.返回顶部元素pq.top();// 2.检查优先队列是否为空,为空返回1否则为0pq.empty();// 3.返回优先队列内元素的数量pq.size();// 小根堆peiority_queue<int,vector<int>,greater<int>> pq1;// 自定义 cmp 函数 - 小根堆peiority_queue<int,vector<int>,greater<int>> pq1;
}

动态数组(vector)

性质:

        可以改变容器的大小,对于int不定义默认为0。

常用函数:

#include<bits/stdc++.h>
using namespace std;
// 降序
bool cmp(int a,int b){return a>b;
}
int main(){// value:默认值,不填则为0vector<T> v(vector_size,value);// 增// 1.将给定的元素到容器的末尾v.push_back(value);// 2.将构造元素附加到容器末尾v.emplace_bcak(value);// 3.插入元素,pos:使用迭代器v.insert(pos,value);// 删// 1.删除最后一个元素v.pop_back();// 2.清空数据v.clear();// 改// 1.交换vector内部的两个元素swap(v[0],v[4]);// 2.排序,默认为升序sort(v.begin(),v.end(),less<int>());// 排序为降序sort(v.begin(),v.end(),cmp);// 3.去重// unique 返回去重之后的尾地址,判断当前元素是否等于上一个元素,将不重复的元素移到前面来sort(v.begin(),v.end());v.erase(unique(v.begin(),v.end()),v.end());// 查    // 1.返回元素数量v.size();// 2.检查容器是否为空,为空返回1,否则为0v.empty();// 3.返回数组中第一个大于等于该元素的下标int ind = lower_bound(v.begin(),v.end(),num)-v.begin();// 4.返回数组中第一个大于该元素的下标int ind = upper_bound(v.begin(),v.end(),num)-v.begin();
}

哈希表(map,unordered_map)

性质:

使用键值对存储。默认为升序。

map:自动排序,key唯一

unordered_map:无序,key唯一,查询速度快于map

两者可使用函数相同。

常用函数:

#include<bits/stdc++.h>
using namespace std;
// 按key递增排序
struct cmp {  bool operator()(int a, int b) const {  return a < b;  }  
};
int main(){map<key,T,cmp> mp;// 增    mp[key1] = value2;// 删// 1.删除所有元素mp.clear();// 2.删除对应的键mp.erase(key1);// 改//查// 1.查找指定键,返回迭代器auto ind = mp.find(key1);// 2.返回键的数量mp.size();}

集合(set,unordered_set)

性质:

        set:有序,元素唯一

        unordered_set:无序,元素唯一

        两者所用函数相同。默认为升序。

常用函数:

#include<bits/stdc++.h>
using namespace std;
// 按key降序
struct cmp{bool operator()(int a,int b) const{return a > b;}};
int main(){set<key,cmp> s;// 增// 1.插入元素 s.insert(value);// 2.就地构造元素s.emplace(value);// 删// 1.删除元素s.erase(value);// 2.清空元素s.clear();// 改// 查// 1.查找具有特定键的元素,返回迭代器s.find(value);// 2.返回元素数量s.size();// 3.返回大于等于value的迭代器s.lower_bound(value);// 4.返回大于value的迭代器s.upper_bound(value);
}

双端队列(deque)

性质:

        双向开口,可在首尾进行删改操作。可用下标索引与数组一样。

常用函数:

    deque<int> a: 创建内部元素为整型的双端队列a。q.front():返回第一个元素的引用。q.back():返回最后一个元素的引用。q.push_front(x):把元素x插入到双向队列的头部。q.pop_front():弹出双向队列的第一个元素。q.push_back(x):把元素x插入到双向队列的尾部。q.pop_back():弹出双向队列的最后一个元素。q.begin():	返回指向容器中第一个元素的迭代器。q.end():	返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。q.size():	返回实际元素个数。

常用stl函数:

        移动迭代器:

next(iterator,n):
返回返回传入迭代器“iterator”右边n个单位,默认为1。prex(iterator,n)
返回返回传入迭代器“iterator”左边n个单位,默认为1。

        全排列:

next_permutation:将当前排列更改为 全排列中的下一个排列。
如果当前排列已经是 全排列中的最后一个排列(元素完全从大到小排列),
函数返回 false 并将排列更改为 全排列中的第一个排列(元素完全从小到大排列);
否则,函数返回 true。
next_permutation(v.begin(), v.end()) 或 next_permutation(v + begin, v + end)。prev_permutation:将当前排列更改为 全排列中的上一个排列。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com