Cplus note
string 类函数
getline(cin, s)
1 |
|
- 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 |
|
一定要注意
使用
longlong!
scnaf!
找规律!