gpt4 book ai didi

c++ - 从函数双端队列上的迭代器获取函数指针

转载 作者:行者123 更新时间:2023-11-28 01:09:25 27 4
gpt4 key购买 nike

我正在尝试构建一个简单的赤字循环调度程序,现在我正在尝试获取运行时间最少的函数。当我尝试将迭代器转换为指针时,收到返回给我的“总线错误”。下面是我的代码,ptof 只是一个 typedef 指针,指向我的双端队列中的函数类型,State 包含每个进程的信息。我究竟做错了什么?非常感谢您的帮助。

ptof leastTime(deque<ptof> fnc, map<ptof, State *> s){
double leastElapsed= 100000000;
ptof f;

deque<ptof>::iterator it;
for (it=fnc.begin() ; it < fnc.end(); it++ ){
if(s[*it]->elapsed<leastElapsed){
f = (ptof)(&(*it));
cout<< s[f]->name<<endl;
}
}
return f;
}

最佳答案

f = (ptof)(&(*it)); 

那将获取函数指针的地址。尝试

f = *it;

在任何情况下,都要避免 C 风格的转换。如果您改为尝试 static_cast,编译器会告诉您强制转换无效。

关于c++ - 从函数双端队列上的迭代器获取函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4189844/

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