数组最大最小值直接查找 0(n)
min_element(arr.begin(),arr.end());
max_element(arr.begin(),arr.end());
把第n小的数放到第n个位置
左边的数都比它小,右边的数都比它大 0(n)
nth_element(arr.begin(),arr.begin()+n,arr.end());
将数组反转 0(n)
reverse(arr.begin(),arr.end());
假设已经排好序(要先排好序)
使arr中不出现重复的数字
返回去重后数组的结束指针
int newlong = unique(arr.begin() , arr.end()) - arr.begin();
查找对应元素是否存在
返回 bool 类型 0(logn)
bool exist = binary_search(arr.begin() , arr.end(), 1 );
lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
stack<int> que; 先进后出
que.push(1);
que.pop();
que.empty();
que.size();
que.top();
queue<int> que; 先进先出
que.push(1);
que.pop();
que.empty();
que.size();
que.front();//只有一个不一样的
priority_queue<int> que1; 排好序的队列 可以定义排序方式
que2.push(1);
que2.pop();
que2.empty();
que2.size();
que2.top();
本文详细介绍使用C++ STL进行数组操作的高效方法,包括查找最大最小值、数组排序、去重、查找元素存在性及边界定位等。同时,对比不同数据结构如栈、队列和优先队列的特点和使用场景。
10万+

被折叠的 条评论
为什么被折叠?



