C++ Features

This section focuses on features unique to c++

传递引用类型的参数

函数原型中,可定义引用类型参数。

void work(int &x) {
    x = x + 10; // 修改 x 的值
}

int main() {
    int a = 5;
    work(a); // 传递 a 的引用给 work
    cout<<a; // a为15
    return 0;
}

引用类型的参数在函数调用时不会创建参数的副本,而是直接引用调用时传递的实参。这样,可以避免拷贝参数带来的开销,且能在函数中会直接修改原变量的值,也无需使用指针间接访问。

基于范围的 for 循环

简洁的遍历数组和其它容器 (C++ 11)

int arr[]={1,2,3,4,5};

for(int i:arr){
    cout<<i<<' ';
}

这种方式默认是值传递,意味着循环内对 i 的修改不会影响原数组中的元素。如果需要修改原数组元素,可以使用引用:

for (int &i : arr) {
    i++; // 这会修改 arr 中的元素
}

基于范围的 for 循环适用于: - 普通数组(如 int arr[5]) - 标准容器(如 vector, list, map 等) - 任何提供了 begin() 和 end() 方法的类型