首页 > 文章列表 > C++ 函数 rvalue 引用参数的用法

C++ 函数 rvalue 引用参数的用法

引用参数 rvalue
233 2024-04-23

C++ 中,rvalue 引用参数允许函数获取临时对象的引用,无需创建副本,优点包括避免不必要的复制、提高性能和可读性。语法为 void func(T&& param)。注意,rvalue 引用只能绑定到临时对象,且只能在函数中使用。

C++ 函数 rvalue 引用参数的用法

C++ 函数 rvalue 引用参数的用法

在 C++ 中,rvalue 引用参数允许函数获取一个临时对象的引用,而无需创建它的副本。这可以提高性能和可读性。

语法:

void func(T&& param);

其中:

  • && 表示 rvalue 引用
  • param 是函数参数
  • T 是类型

优点:

  • 避免不必要的复制
  • 提高性能
  • 提高代码可读性

实战案例:

考虑一个将字符串转换为大写的函数:

#include <iostream>
#include <string>

using namespace std;

void toUpperCase(string&& str) {
  for (char& c : str) {
    c = toupper(c);
  }
}

int main() {
  string input = "hello";
  toUpperCase(input);
  cout << input << endl;

  return 0;
}

在这种情况下,将 input 传递给 toUpperCase 时,无需复制字符串,因为它是一个临时对象。该函数将直接修改 input,从而避免了不必要的开销。

输出:

HELLO

注意事项:

  • 只能将临时对象绑定到 rvalue 引用参数。
  • rvalue 引用不能绑定到已存在的变量。
  • rvalue 引用只能在函数中使用,不能作为类成员。