小白比赛上机考试前常用C++函数(格式化输出,基本的数组排序和求和)
格式化输出
小白参加计算机竞赛和上机考试,复习一下数据格式化输出和数组,容器的基本函数。
格式化输出
1.输出N位数;比如4位年份
int years = 23;
printf("%04d",years); //总共4位不够用0填在前面
//输出为 0023
2.小数点后N位
double dNum = 5.32; //需要一个浮点型
printf("%.3f\n", dNum); // %.:百分号+点+小数点后面的位数
//输出为:5.320
用于C++容器的一些排序、求和反转函数
1.先导库(万能库小白日后慢慢记忆具体哪个库吧)和使用命名空间
#include<bits/stdc++.h>
using namespace std;
2.用 sort 函数来对容器排序
vector<int> arr = {3, 4,1, 6, 2, 7, 1 ,9 ,0, 1};
//sort第一个参数为容器内需要排序的区间开始的位置的迭代器
// 第二个参数是容器内需要排序的区间最后一个元素后的迭代器
//cmp是一个比较的函数可以不写,默认从小到大
sort(arr.begin(), arr.end(), cmp);
for(int c: arr){ //输出结果
cout << c << " ";
}
//结果:0 1 1 1 2 3 4 6 7 9
//cmp函数
int cmp(int a, int b){
return a < b;
//记忆:a,b相对参数时候的位置不变
// a < b; < 表示从小到大;
// a > b; >表示从大到小;
}
3.用accumulate函数来计算容器一定区间的和
vector<int> arr = {3, 4,1, 6, 2, 7, 1 ,9 ,0, 1};
//第一个参数为容器内需要求和的区间开始的位置的迭代器
//第二个参数是容器内需要求和的区间最后一个元素后的迭代器
//最后一个元素为求和的初值 这里设为0
int t = accumulate(arr.begin(), arr.begin()+3, 0);
//结果:8 区间[0,3)(左闭又开)之内所有数的和
4.用reverse函数反转容器内的元素
//数组为arr
vector<int> arr = {3, 4,1, 6, 2, 7, 1 ,9 ,0, 1};
//参数也是一个左闭右开的区间的,迭代器
reverse(arr.begin(), arr.end());
for(int c: arr){
cout << c << " ";
}
//输出结果:1 0 9 1 7 2 6 1 4 3