1. C++数学与字符串函数实战指南
作为从初中开始接触C++的老程序员,我深知数学和字符串处理是每个C++开发者必须跨过的两道坎。今天这份笔记不是教科书式的函数列表,而是结合我十年踩坑经验总结的实战指南。无论你是刚配置好VSCode环境的新手,还是被"Microsoft Visual C++ Redistributable"报错折磨过的战友,这里都有你需要的干货。
2. 数学函数深度解析
2.1 cmath库核心函数实战
C++的cmath库就像瑞士军刀,但90%的开发者只用了其中20%的功能。先看这段典型代码:
cpp复制#include <cmath>
#include <iostream>
int main() {
double num = 3.14159;
std::cout << "ceil: " << ceil(num) << "\n"; // 4
std::cout << "floor: " << floor(num) << "\n"; // 3
std::cout << "round: " << round(num) << "\n"; // 3
std::cout << "sqrt: " << sqrt(9) << "\n"; // 3
return 0;
}
注意:cmath中的三角函数使用弧度制而非角度制,这是新手常犯的错误。记得用
3.14159265/180转换。
2.2 自定义数学函数开发
当标准库不够用时,我们需要造轮子。比如实现一个安全的开平方函数:
cpp复制double safe_sqrt(double x) {
if (x < 0) {
throw std::invalid_argument("负数不能开平方");
}
return sqrt(x);
}
在项目中我常用到的几个自定义函数模式:
- 带边界检查的函数(如防止除零)
- 组合数学运算(如球体体积计算)
- 性能优化版本(查表法替代实时计算)
3. 字符串处理完全手册
3.1 string类核心操作
现代C++应该优先使用string而非char[]。看这个典型用例:
