在C ++中使用STL处理数组和向量
在解决问题的竞争性编程中,数组和向量是非常重要的数据结构。而且c++编程中的STL(标准模板库)提供了一些用于执行数组和向量运算的功能。
让我们看看其中的一些功能,
查找数组/向量的和,最小值和最大值-在STL中,有一些函数可以帮助您查找数组/向量的和,最大值和最小值。具有功能的功能,
求和
accumulate(startIndex, endIndex, initialSum)
数组/vecto的最大元素
*max_element(startIndex, endIndex)
数组/向量的最小元素
*min_element(startIndex, endIndex)
在数组上执行操作的程序-
示例
#include <bits/stdc++.h>
using namespace std;
int main(){
int array[] = {65, 7,12, 90, 31, 113 };
int l = sizeof(array) / sizeof(array[0]);
cout<<"数组的元素是: ";
for(int i = 0; i<l; i++)
cout<<array[i]<<"\t";
cout<<endl;
cout<<"数组所有元素的总和: "<<accumulate(array, array + l, 0)<<endl;
cout<<"数组中最大值的元素: "<<*max_element(array, array + l)<<endl;
cout<<"数组中具有最小值的元素: "<<*min_element(array, array + l)<<endl;
return 0;
}输出结果
数组的元素是: 65 7 12 90 31 113 数组所有元素的总和: 318 数组中最大值的元素: 113 数组中具有最小值的元素: 7
对向量执行操作的程序-
示例
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> vec= {65, 7,12, 90, 31, 113 };
cout<<"向量的所有元素之和: "<<accumulate(vec.begin(), vec.end() + 1, 0)<<endl;
cout<<"向量中最大值的元素: "<<*max_element(vec.begin(), vec.end())<<endl;
cout<<"向量中最小值的元素: "<<*min_element(vec.begin(), vec.end())<<endl;
return 0;
}输出结果
向量的所有元素之和: 318 向量中最大值的元素: 113 向量中最小值的元素: 7
排序数组/向量的元素-
在STL中,有一个函数sort()可用于对数组/向量的元素进行排序。该函数使用快速排序技术对数组/向量进行排序。
语法
sort(startIndex, endIndex)
程序对数组的元素进行排序-
示例
#include <bits/stdc++.h>
using namespace std;
int main(){
int array[] = {65, 7,12, 90, 31, 113 };
int l = sizeof(array) / sizeof(array[0]);
cout<<"数组的元素是: ";
for(int i = 0; i<l; i++)
cout<<array[i]<<"\t";
cout<<endl;
cout<<"\nSorting elements of the array…\n\n";
sort(array, array+l);
cout<<"排序后的数组是: ";
for(int i = 0; i<l; i++)
cout<<array[i]<<"\t";
cout<<endl;
return 0;
}输出结果
数组的元素是: 65 7 12 90 31 113 Sorting elements of the array... 排序后的数组是: 7 12 31 65 90 113
程序对向量的元素进行排序-
示例
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> vec = {65, 7,12, 90, 31, 113 };
cout<<"向量的元素是: ";
for(int i = 0; i<vec.size(); i++)
cout<<vec[i]<<"\t";
cout<<endl;
cout<<"\nSorting elements of the vector...\n\n";
sort(vec.begin(), vec.end());
cout<<"排序的向量是: ";
for(int i = 0; i<vec.size(); i++)
cout<<vec[i]<<"\t";
cout<<endl;
return 0;
}输出结果
向量的元素是: 65 7 12 90 31 113 Sorting elements of the vector... 排序的向量是: 7 12 31 65 90 113