#include<algorithm> (STL标准库)
max(a[i],maxscore);
min(a[i],minscore); p111 stat方法
void swap(int &x,int &y)
#局部变量&全局变量
& 引用传参
小写字母-->大写字母
string to_upper(string s){
for(int i = 0; i<s.length();i++)
if('a'<= s[i] && s[i] <= 'z')
s[i] -= 'a'-'A';
return s;
}
sort(); 快速排序, 时间复杂度n*log2(n)
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int main()
{
int n[10]={2,1,2,3,2};
sort(n,n+10);//数组地址
for(int i=0;i<10;i++)
cout<<n[i];
return 0;
}
vector 容器 sort(v.begin(),v.end())
C++ vector 容器浅析 | 菜鸟教程 (runoob.com)
桶排序 时间复杂度为O(n)
<bits/stdc++.h>
头文件包含了<algorithm>
。
例如:
P1177 【模板】排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int N[n];
for(int i=0;i<n;i++)
cin>>N[i];
sort(N,N+n); //原本的sort草方法
for(int i=0;i<n;i++){
if(i==n-1){
cout<<N[i]<<"\n";
return 0;
}
cout<<N[i]<<" ";
}
return 0;
}//原本的sort草方法
ios::sync_with_stdio(0);//关闭同步流
int n;cin >> n;
vector<int> a(n,0); //n个,初始化为0
for(int i = 0;i < n; ++ i)cin >> a[i];
sort(a.begin(), a.end());
//当i的迭代器和a.back()迭代器相同时就换行
for(auto &i : a)cout << i << " \n"[&i == &a.back()];
//C++特有
//同for(int i = 0;i<n;++i)cout<<a[i]<<" \n"[i == n-1]; []内true 输出"\n",false则" "
return 0;
}
#include <bits/stdc++.h>
using namespace std;
//堆 空间
const int N = 2e6 + 9;
int a[N];//a[i]表示数字i出现的次数
signed main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, m;cin >> n >> m;
//堆空间
for(int i = 1;i <= m; ++ i)
{
int x;cin >> x;
a[x] ++;
}
for(int i = 0;i <= n; ++ i)
{
for(int j = 1;j <= a[i]; ++ j)
{
cout << i << ' ';
}
}
return 0;
}
memset?
while循环还能这么写? 做题&文件输入专属
//当输入停止时停止
int a,b;
while(cin>>a>>b){
//当输入停止时停止
....
}
int a,b;
while(cin>>a>>b &&a &&b){// a,b ==0时停止
....
}
while(cin>>a>>b &&(a||b) ){
....
}
pow( a,b); // 时间复杂度大
max({x,y,z});