1. 输出回车:printf("\n")  ---->   cout<<endl;---->puts("");  (港巨专用QAQ).

2. 从子程序退出主程序:exit(0);

3. 取消cin与stdin的同步,缩短时间:ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);  (感觉还不如直接用scanf);

4. 判断一个数是不是整数:实型变量X,假如fabs(X-(int)X)<1e-8,则为整数。

5. 判断奇数 if(n&1);

6. i=i/2    ---->     i/=2    ---->     i>>=1;

7. 标准库的π :1.  acos(-1,0)     2.  文件开头加这句#define USE_MATH_DEFINES ,然后直接用 M_PI就行;

//直接加math.h头文件,直接用就行                                                     ————2018.5.19改

8.标准库的e(自然对数),1.exp(0.0)  2.M_E用法如M_PI

9. 使用gets()时,如果前面的步骤读入缓冲区了数据或者有个回车,需要加一个fflush(stdin);或者getchar();

//ps:fflush(stdin),并非c/c++标准定义,只适用于部分编译器,(如vc6),

c++,推荐用,先cin.clear(); 再cin.sync();                                               ————2018.4.23改

对于不同编译器,对fflush(stdin)的定义不同,最好不要用这玩意!!!  ————2019.3.26注

10. vector清空:定义vector<int>V ;       V.clear(),清空容器,vector<int>().swap(V);重置

 先v.clear();再v.shrink_to_fit();  ——2018.4.24补

11.用cin读取带空格、回车的字符串,用cin.get(字符数组名,要读取的长度,结束标志)。

12.C++中字符数组和string类的转换:

      (1) 字符数组转string : 

           char s[10];存入s[10]字符串后,定义string ss(s),或者string ss; ss=s  // ss+=s;

      (2)string 转字符数组:

           char s[10]; string ss="abcdefg"; 然后strcpy(s,ss_cstr()); //strncpy(s,ss.cstr(),10);

13.C语言支持double类型的取余,fmod(a,b),如 fmod(3.15,2)=1.150000;

14.切记。STL里面的东西都很慢,string慢,sstream更慢,慎用。

15.strrev(str);逆转字符串数组,C++用algotithm里的reverse(s.begin(),s.end()); string s;  

16.C++数字和string转换,#include<sstream>, stringstream STR;int n=231;string s;STR<<n;STR>>s;STR.clear();

17.string里查找子字符串的find()函数,string A,B;A.find(B) //找不到返回nops,找到就写if(A.find(B)==string::nops).

18.暂停屏幕,不仅可以system("pause")和getchar();试试cin.get();一样行哟~

19.常用输入输出,参见牛客给的样例:点击打开链接

20.判断一个数是不是2的幂,if(!(n&(n-1)&&n) return true; return false;

  因为n&(n-1)的结果是 0 ,2 ,4 ,8 , 16 ,32 .......

21.取int a的二进制的第k位,a>>k&1,注意,这里的k是从0开始,如a=7, 二进制表示为111,

那么a的第0,1,2位都是1,即a>>0&1 = 1 ,  a>>1&1 = 1, a>>2&1 = 1.

22.C语言的文件操作中,rename(char *oldname,char *newname):文件重命名操作,以及remove("文件路径"),移除文件操作,进行之前都要把文件关上fclose(fp);

未完待补充~~~