1. 构造函数初始化列表替代赋值
      在类构造函数中,优先使用初始化列表直接初始化成员变量,而非在构造函数体内赋值。
class Person {
public:
    // 推荐:初始化列表
    Person(string n, int a) : name(n), age(a) {}
private:
    string name;
    int age;
};
  1. auto 关键字简化类型声明
    当类型名冗长或可推导时,用 auto 替代显式类型声明。
vector<int> vec = {1, 2, 3};
// 推荐:auto 简化迭代器类型
for (auto it = vec.begin(); it != vec.end(); ++it) { /* ... */ }
  1. emplace_back 替代 push_back 容器插入
    向容器(如 vector)添加元素时,优先用 emplace_back 直接构造对象,而非 push_back 拷贝对象。
vector<string> vec;
// 推荐:直接构造字符串,无需临时对象
vec.emplace_back("Hello");
  1. nullptr 替代 NULL 表示空指针
    C++11 起使用 nullptr 明确表示空指针,而非传统的 NULL 宏。

int* ptr = nullptr; // 明确空指针类型

  1. 范围 for 循环简化迭代
    遍历容器时,优先使用基于范围的 for 循环。
vector<int> nums = {1, 2, 3, 4, 5};
// 推荐:范围循环
for (const auto& num : nums) {
    cout << num << " ";
}
  1. const 关键字增强代码健壮性
    对无需修改的变量、函数参数和成员函数,添加 const 修饰。
const string& getString() const { // 成员函数声明为 const
    static const string str = "Hello";
    return str;
}

粗眉毛的硬盘
1 声望0 粉丝