首頁 > 後端開發 > C++ > C++ 中函數指標的定義與用法

C++ 中函數指標的定義與用法

PHPz
發布: 2024-04-13 14:15:01
原創
650 人瀏覽過

C 中的函數指標是指向函數的變量,允許將函數作為參數傳遞。使用函數指標可以透過定義它們,將函數名稱或 lambda 表達式賦給它們,並像呼叫普通函數一樣呼叫它們。函數指標廣泛應用於函數器,如排序函數器,允許在運行時建立和使用排序函數。

C++ 中函数指针的定义和用法

C 中函數指標的定義和用法

函數指標是一種指向函數的變數。它提供了將函數作為參數傳遞的能力,並在運行時調用函數的靈活性。

定義函數指標

在C 中,函數指標可以如下定義:

returntype (*function_ptr_name)(param_type1, param_type2, ...);
登入後複製

例如,定義一個指向接受兩個整數參數並傳回整數的函數的指標:

int (*add_pointer)(int, int);
登入後複製

初始化函數指標

可以透過將函數名稱賦給函數指標來初始化它:

add_pointer = add; // 假设 add 是一个接收两个整数并返回整数的函数
登入後複製

或者,可以使用lambda 表達式建立函數指標:

add_pointer = [](int a, int b) -> int { return a + b; };
登入後複製

呼叫函數指標

可以像呼叫普通函數一樣呼叫函數指標:

int result = add_pointer(10, 20);
登入後複製

實戰案例:排序函數器

函數指標的一個常見應用是函數器,它允許在運行時創建和使用排序函數。例如,以下程式碼使用函數指標實作帶有比較函數的 std::sort

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
  std::vector<int> numbers = {3, 1, 5, 2, 4};

  // 定义比较函数指针
  int (*compare_func)(int, int) = [](int a, int b) -> bool {
    return a < b;
  };

  // 使用函数指针排序
  std::sort(numbers.begin(), numbers.end(), compare_func);

  // 输出排序后的结果
  for (const auto& number : numbers) {
    std::cout << number << ' ';
  }

  return 0;
}
登入後複製

以上是C++ 中函數指標的定義與用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板