c++ 中vector模板类型问题
目标:定义一个int 函数,然后再定义一个vector ,使得它的元素指向该int 函数。编译环境,vs2013旗舰版。
下面是我的做法:
首先定义int函数,
int fun(int a, int b);
然后分别尝试不同的方式实现定义目标vector
第一种方式,decltype 就可以实现如下,
vector<decltype(fun)*>v;
第二种方式,
using f=int(int,int);
vector<f*>v;
前两种方式都是隐去了类型,通过间接的方式获得函数的类型,第三种方式,直接显示的指出类型,
vector<int(int,int)*>v;
结果运行就会报错,请问错在哪里了,谢谢。
PS:本人初学者 #include <vector>
int fun(int a, int b) {
return a > b ? a : b;
}
int main(void) {
std::vector<int (*)(int a, int b)> v = {fun};
v.push_back(fun);
return 0;
}
人造人 发表于 2021-5-10 13:08
谢谢,懂了。原来是指针标识符的位置不对。{:10_277:}
页:
[1]