企业网站建设费用怎么记账,淄博周村网站建设方案,手机网站建设效果,企业网站建设 总结C vector中常用到排序、取最值#xff0c;一些场景可能还会要计算某个元素的排行#xff0c;以下就是一些实际例子#xff0c;精简、有效。 【1】会涉及到数组转vector#xff1a; vectorint v(arr, arr N); // N为数组size#xff0c;可用sizeof(arr)/sizeof(i…C vector中常用到排序、取最值一些场景可能还会要计算某个元素的排行以下就是一些实际例子精简、有效。 【1】会涉及到数组转vector vectorint v(arr, arr N); // N为数组size可用sizeof(arr)/sizeof(int) 计算。 【2】vector中 begin-end的两种用法 v.begin(), v.end() begin(v), end(v) 【3】正排序用到sort() sort(v.begin(), v.end()); //默认是从小到大 //begin/end对调会失败 【4】逆排序可以调用 reverse辅助 reverse(v.begin(), v.end()); //翻转//元素位置翻转 【5】查找指定元素的位置如果已排序则可以用来查找制定元素的排行 int IDX find(v.begin(), v.end(), int N) - v.begin(); 输出结果直接见代码中注释部分。
#include iostream
#include algorithm//max_element(),min_element()
#include vector
using namespace std;void main()
{//max_element用于返回最大值的下标,//*max_element用来取最大值//【1.1 对数组的排序】int a[5] { 2, 3, 5, 4, 5 };cout maxVal (*max_element(a, a 5)) maxLocal max_element(a, a 5) - a endl;cout minVal (*min_element(a, a 5)) minLocal min_element(a, a 5) - a \n\n;
//cout:
maxVal 5 maxLocal 2
minVal 2 minLocal 0//【1.2 对vector的排序】 //不精简//建议用下边end的那个//通过数组a的地址初始化注意地址是从0到5左闭右开区间vectorint b(a, a 5);cout maxVal *max_element(b.begin(), b.end()) maxLocal max_element(b.begin(), b.end()) - b.begin() endl;cout minVal *min_element(b.begin(), b.end()) minLocal min_element(b.begin(), b.end()) - b.begin() \n\n;
//cout:
maxVal 5 maxLocal 2
minVal 2 minLocal 0//【】v.begin() / begin(v) 验证是一样的。okcout maxVal *max_element(begin(b), end(b)) maxLocal max_element(begin(b), end(b)) - begin(b) endl;cout minVal *min_element(begin(b), end(b)) minLocal min_element(begin(b), end(b)) - begin(b) \n\n;
//cout:
maxVal 5 maxLocal 2
minVal 2 minLocal 0//【2 指定元素的排行】//自己实现先排序再用findvectorint c{ 0,1,2,3,4,5,6,7,8,9 };sort(c.begin(), c.end()); //默认是从小到大 //begin/end对调会失败reverse(c.begin(), c.end()); //翻转后变为从大到小//int IDX find(c.begin(), c.end(), 7) - c.begin(); //9是指定元素的值//cout 指定元素的降序排行 IDX endl;
//cout:
指定元素的降序排行2 【注意是降序】}