1. 二分查找
- 指数函数和对数函数的参数和返回值均为浮点数,因此运算过程中会存在误差,应该要进行判断.(浮点数之间的计算存在误差, 而整数之间的计算不会存在误差)
// 求x的算数平方根
int ans = exp(0.5 * log(x));
return ((long long)(ans + 1) * (ans + 1) <= x ? ans + 1 : ans);
- 计算机无法精确的表示浮点数, 例如0.2 和0.1, 在计算机内部使用二进制数表达的, 无法表示精度, 所以0.2加0.1的结果可能稍微大于0.3
0.1的二进制表示大致如下:0.0001100110011001100110011…(无限循环)
0.2的二进制表示大致如下:0.001100110011001100110011…(无限循环)
-
两个int类型相乘,得到的结果如果用int类型表示,可能会溢出,应该用long = (long) int * int;
-
数组的元素不能删除, 只能覆盖
-
字符串可以直接通过下标访问每一个字符
String s = “hello”;
其中s[1] = ‘h’ -
调用substr()函数可以提取子字符串
c.substr(0, slow) 是在C++中用于提取子字符串的方法,它的含义是从字符串 c 中提取从索引 0 开始(包括索引 0)到索引 slow 之前(不包括索引 slow)的部分。
-
c++中判断两个字符串是否相等
- 使用==运算符: 你可以使用运算符直接比较两个字符串,如果它们的内容相同,则返回true,否则返回false。
if (str1 == str2) { std::cout << "字符串相等" << std::endl; }
- 使用compare方法: std::string类还提供了compare方法,用于比较两个字符串。如果两个字符串相等,compare方法返回0,否则返回一个非零值,表示它们的差异
if (str1.compare(str2) == 0) { std::cout << "字符串相等" << std::endl; } else { std::cout << "字符串不相等" << std::endl; }
- 自定义函数
螺旋矩阵
- 获取一个二维数组中元素的个数
例如:获取vector<vector>& matrix 的元素个数
int rows = matrix.size(), columns = matrix[0].size(); int total = rows * columns;