vector 元素为指向函数的指针
程序代码:
#include<iostream> #include<vector> using namespace std; int cal(int a,int b) { cout<<a<<b<<endl; return a+b; } int main() { int x=9; int y=8; typedef int q(int,int); vector<q*> v(4,0); //若把这里改为 q* v; v[0]=cal; // v=cal; cout<<v[0](x,y); // v(x,y) // return 0; }
为啥按注释里那样写就没错,我换用vector后就有问题。
我把编译器报错的说明放这:
error: invalid conversion from 'int' to 'std::vector<int (*)(int, int)>::value_type {aka int (*)(int, int)}' [-fpermissive]|
我的理解是一个整形转换为vector<int (*)(int, int)>不合法,但没找到啊
请各位帮忙看看,谢谢了