6个C++实用小技巧


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;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值