专栏文章

C++常用语法汇总

算法·理论参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipye8ha
此快照首次捕获于
2025/12/03 19:58
3 个月前
此快照最后确认于
2025/12/03 19:58
3 个月前
查看原文

结构体与文件

定义一个结构体

CPP
struct student//储存学生信息的结构体 
{
	string id;//编号 
	string name;//名称 
	int ch,ma,en,sum;//各科成绩与总分 
}s[1005];//用于储存数据的数组

读入一个结构体(输出同理)

CPP
for(int i=1;i<=1000;i++)//依次读入1000名学生
{
	cin>>s[i].id;//读入,下面同样是 
	cin>>s[i].name;
	cin>>s[i].ch>>s[i].ma>>s[i].en;	
	s[i].sum=s[i].ch+s[i].ma+s[i].en;//计算总分 
} 

文件读入输出

CPP
freopen("problem.in","r",stdin);//读入"problem.in"文件内的数据 
freopen("problem.out","w",stdout);//输出到"problem.out"

队列、栈

队列STL:标准队列

CPP
#include<queue>//头文件 
queue<Type>q;//建立一个queue队列q
q.push(x);//在队尾插入元素x 
q.pop();//删除队头元素 
q.size();//返回队列元素个数 
q.front();//返回队头元素 
q.back();//返回队尾元素 
q.empty();//判空(0/1)

队列STL:双端队列

CPP
#include<deque>
deque<Type>q;//建立deque队列q
q.front();//返回队头元素 
q.back();//返回队尾元素 
q.pop_back();//弹出队尾元素 
q.pop_front();//弹出队头元素 
q.push_back(x);//插入x到队头 
q.push_front(x);//队尾 

栈STL

CPP
#include<stack>
stack<Type>s;//定义名为s的栈
s.push(x);//压入x到栈顶 
s.top();//返回栈顶元素 
s.pop();//弹出栈顶元素 
s.size();//返回元素个数 
s.empty();//判空(0/1)

sort排序、cmp

升序排序

CPP
#include<algorithm>
int arr[]={5,2,9,1,5,6};//一个要排序的无序数组
int n = sizeof(arr) / sizeof(arr[0]);//得到数组长度,实际上用不上 
//升序排序 
sort(arr,arr+n);
for(int i=0;i<n;i++)cout<<arr[i]<<" ";
//输出:1 2 5 5 6 9  

降序排序

CPP
bool cmp(int a, int b) 
{
    return a>b;
}
sort(arr,arr+n,cmp);
for(int i=0;i<n;i++)cout<<arr[i]<<" ";
//输出:9 6 5 5 2 1 

二分查找

CPP
int erfen(int a[],int l,int r,int x);//x是要找的数 
{
	while(l<r)//代表还是要继续查找
	{
		int mid=(l+r)/2;//每次查找维护一个mid
		if(a[mid]<x)
		{
			l=mid+1;
		}	
		else
		{
			r=mid;
		}	
	} 
	if(a[l]==x)
	{
		return l;//返回l的位置,也就是x在第几位 
	}
	return -1;//没找到 
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...