- 构造函数初始化列表替代赋值
在类构造函数中,优先使用初始化列表直接初始化成员变量,而非在构造函数体内赋值。
- 构造函数初始化列表替代赋值
class Person {
public:
// 推荐:初始化列表
Person(string n, int a) : name(n), age(a) {}
private:
string name;
int age;
};
- auto 关键字简化类型声明
当类型名冗长或可推导时,用 auto 替代显式类型声明。
vector<int> vec = {1, 2, 3};
// 推荐:auto 简化迭代器类型
for (auto it = vec.begin(); it != vec.end(); ++it) { /* ... */ }
- emplace_back 替代 push_back 容器插入
向容器(如 vector)添加元素时,优先用 emplace_back 直接构造对象,而非 push_back 拷贝对象。
vector<string> vec;
// 推荐:直接构造字符串,无需临时对象
vec.emplace_back("Hello");
- nullptr 替代 NULL 表示空指针
C++11 起使用 nullptr 明确表示空指针,而非传统的 NULL 宏。
int* ptr = nullptr; // 明确空指针类型
- 范围 for 循环简化迭代
遍历容器时,优先使用基于范围的 for 循环。
vector<int> nums = {1, 2, 3, 4, 5};
// 推荐:范围循环
for (const auto& num : nums) {
cout << num << " ";
}
- const 关键字增强代码健壮性
对无需修改的变量、函数参数和成员函数,添加 const 修饰。
const string& getString() const { // 成员函数声明为 const
static const string str = "Hello";
return str;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。