C
C语言较偏基础知识:
1)内联函数
关键字: inline (放在函数定义体前使函数成为内联)
作用:不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处
注意事项:1.每一处内联函数的调用都要复制代码,将使程序的总代码量增大,消耗更多的内存空间。
_> 规模很小(一般5个语句一下)而使用频繁的函数,(在函数规模很小的情况下,函数调用的时间开销可能相当于甚至超过执行函数本身的时间,把它定义为内联函数,可大大减少程序运行时间)
2.内联函数不能包括复杂的控制语句,如循环语句和switch语句,递归函数更无法内联处理。
2)C/C++的128位整数类型 __int128 (双英文下划线)
typedef __int128 ll;
注意事项:1. __int128不支持cin,cout,scanf,printf对其定义的变量的输入输出,需自己另写输入输出函数。
2.大部分OJ可以编译,C/C++标准,GCC不支持
输入输出函数模板(供大家借鉴):
#include <bits/stdc++.h>
using namespace std;
inline __int128 read()
{
__int128 x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
inline void write(__int128 x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
write(x/10);
putchar(x%10+'0');
}
int main()
{
__int128 a = read();
__int128 b = read();
write(a + b);
return 0;
}
3)int b=lower_bound(r,r+n,a)-r;
---- b表示元素a在r数组内的位置
4)C++的模板类型 pair
格式:pair<type1,type2>p ---- type可以为任何类型
特点:默认对first升序,若第一类型相等,对second升序
赋值:
pair<int,int>p; p=make_pair(1,2); //(1) p.first=1,p.second=2; //(2)
5)十进制(0~9及正负号组成) ---%d
八进制(以0为前缀,0~7组成,无符号) ---%0
十六进制(以0x或0X为前缀,0~9及A~F组成,无符号) ---%x(显示加“#”)
6)计算程序运行时间https://blog.csdn.net/qq_34732729/article/details/87879543
7)sizeof 关键字, 不是函数,它后面的()并不是必须的 sizeof操作符计算的是系统为它后面的变量或类型名分配的空间大小,无论其中是否存储了有用数据。
strlen 函数, ()中必须是字符串指针或字符串常量,它返回的是检测对象中第一个'\0'前的字符个数,不含'\0'。
char ch[10]; scanf("%s",&ch); int a=sizeof(ch); int b=strlen(ch); //输入andrea ,a=10,b=6;

浙公网安备 33010602011771号