gpt4 book ai didi

c++ - 指向函数 C++ 的指针数组

转载 作者:行者123 更新时间:2023-11-28 02:37:18 25 4
gpt4 key购买 nike

我有 3 个具有相同签名的函数。我需要用函数指针初始化一个数组。我有:

typedef void(*sorting_func) (int* a, int n);

和函数:

class Sortings {
public:
static void bubble_sort(int a[], int n);
static void bubble_aiverson_1(int a[], int n);
static void bubble_aiverson_2(int a[], int n);
};

我需要一个在这个类中带有指针的数组,这样使用:

Sortings::array[0]...

函数不能是静态的。

最佳答案

您可以使用std::functionvector,即

std::vector<std::function(void(int*,int)>> sortingFunctions;

然后,根据情况,您可以直接推回自由函数,或使用 lambda 以如下方式推回成员函数:

//Capturing `this` in the lambda implies the vector is a member of the class
//Otherwise, you must capture an instance of the class you want to call the
//function on.
std::function<void(int*,int)> myMemberFunction = [this](int* a, int n){
this->memberFunction(a,n);
}

sortingFunctions.push_back(myMemberFunction);

假设您在 Sorting 类的成员函数中创建 vector 。

See a live example here

关于c++ - 指向函数 C++ 的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27043546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com