Cplus note

string 类函数

getline(cin, s)

1
getline(cin,temp,delim);
  • cin是标准输入流函数
  • temp是用来存储字符的变量名
  • delim是结束标志

在使用getline读入一整行时,如果前面使用getchar()、cin这类读入了一个字母,但是不会读入后续换行\n符号或者空格的输入时,再接getline()就容易出现问题。

这是因为输入数字之后,敲回车,产生的换行符仍然滞留在输入流,接着就被getline(cin,s)给读进去了,此时的s=“\n”,所以实际上s只是读入了一个换行符\n。

而若是前面使用getline(),再又用getline()进行读入,此时不会发生问题。getline()中读入结束的回车后,结束符不放入缓存区,会将读入的\n直接去除,下一个输入前,缓冲区为空,并不会因为回车留下\n。

反转reverse(s.begin(), s.end())

reverse 是让原数据自己反转哦, 不可以返回值

string ns = reverse(s.begin(), s.end()) ❌

递归的式子 如dfs 没有返回值 一定要用 void dfs()

使用int dfs()回报runtime error错误

最大公约数 __gcd(15, 10) 返回5

最小公倍数 (a*b)/__gcd(a,b)

stoi() 和 atoi()

这两个功能虽然都是将字符串转化为 int 类型,但是还是有区别的,
stoi 的参数是 const string* 类型
atoi 的参数是 const char* 类型 但是string类可以用转 atoi(s.c_str())

str.c_str()

就是将C++的string转化为C的字符串数组

c_str()生成一个const char *指针,指向字符串的首地址

to_string()

cout<<to_string(123)+"asd";

功能:将数字常量(int,double,long等)转换为字符串(string),返回转换好的字符串

多边形面积公式

求多边形面积公式:S = 0.5 * ( x(0)*y(1) - x(1)*y(0) + x(1)*y(2) - x(2)*y(1) ……x(n)*y(0) - x(1)*y(n) )

Tips

int的数字 要进行浮点数运算 要带.,

如2./3.0, 4.0

很大数要使用long long 类型

莫名奇妙出错用longlong试试, 斐波那契数列数列尤其使用, 还有dp问题

使用dp[] 记录前缀和

dp[b] - dp[a-1] 为区间内的值;

TL的问题,试试把cin cout 改成 scanf 和printf!!!!NB*

如果函数不是void 但是不给return 会报错Runtime Error,本地可以运行

进制转换

反向取余法

1
2
3
4
while(n){
a[i++] = n%jin;
n /= jin;
}

一定要注意

使用

longlong!

scnaf!

找规律!


Cplus note
https://liuchenwill.github.io/2023/04/15/Cplus note/
作者
Start_Re
发布于
2023年4月15日
许可协议