一篇关于杂碎小知识的博客

· string自带的find():可查找指定字符串和指定字符。

 如在string1中查找string2,string1.find(string2);返回值为string2第一次在string1中出现的位置
 若希望在特定位置开始查找,可使用 string1.find(string2,location);

 

· erase一共三种用法:

①erase(pos,n);
删除从下标pos开始的第n个字符,比如erase(0,1)为删除第一个字符

②erase(position);
删除postion处的一个字符

③erase(first,last)
删除从first到last之间的字符

 

· 当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过 str="\n"; 的方式将回车符作为输入流cin以清除缓存,如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。

 

· 1<<n二进制每左移一位就是*2,两位就是*2*2,三位就是*2*2*2

 1>>n 1右移n位

 n>>1 n右移1位

 1<<n 1左移n位

 n<<1 n左移1位

 

· registerregister修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。

(注意是暗示而不是命令)

 

· inline 

· 空间换取时间

· 当函数的调用时间多于函数的运行时间的时候,用内联函数可以节省函数的调用时间。如果函数的运行较复杂,如有循环语句的时候,就没有必要使用内联函数了。

· 关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline放在函数声明前面不起任何作用。

 

· memset:按一个字节一个字节来给数组或者是结构体赋值,不可以初始化为1

memset(a, 127, sizeof(a));//数组中的所有元素全为2139062143(可以将其视为INF)

posted @ 2022-04-14 20:38  爱吃虾滑  阅读(50)  评论(0)    收藏  举报