6个C++实用小技巧

67 阅读1分钟

wechat_2025-05-21_133453_019.png

1. 构造函数初始化列表替代赋值

在类构造函数中,优先使用初始化列表直接初始化成员变量,而非在构造函数体内赋值。

class Person {
public:
// 推荐:初始化列表
Person(string n, int a) : name(n), age(a) {}
private:
string name;
int age;
};

2. auto 关键字简化类型声明

当类型名冗长或可推导时,用 auto 替代显式类型声明。

vector<int> vec = {1, 2, 3};
// 推荐:auto 简化迭代器类型
for (auto it = vec.begin(); it != vec.end(); ++it) { /* ... */ }

3. emplace_back 替代 push_back 容器插入

向容器(如 vector)添加元素时,优先用 emplace_back 直接构造对象,而非 push_back 拷贝对象。

vector<string> vec;
// 推荐:直接构造字符串,无需临时对象
vec.emplace_back("Hello");

4. nullptr 替代 NULL 表示空指针

C++11 起使用 nullptr 明确表示空指针,而非传统的 NULL 宏。

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

5. 范围 for 循环简化迭代

遍历容器时,优先使用基于范围的 for 循环。

vector<int> nums = {1, 2, 3, 4, 5};
// 推荐:范围循环
for (const auto& num : nums) {
cout << num << " ";
}

6. const 关键字增强代码健壮性

对无需修改的变量、函数参数和成员函数,添加 const 修饰。

const string& getString() const { // 成员函数声明为 const
 static const string str = "Hello";
return str;
}