我正在进行C++类的分配,我想要一些输入.我不是在寻找"帮助",因为我使用课堂作业作为练习编写"好"代码的借口,而且我正在讨论我正在研究的当前问题的两种解决方案.
我在STL地图中存储了大约4000个值.该程序的一个功能是打印出我的地图中的每个值.我有一个名为'driver'的类,它处理应用程序的内部逻辑并保存对map的引用.我有一个单独的用户界面类.
我要做的是将一个函数指针传递给我的驱动程序,它遍历地图并回调我的UI类中的函数.在大约4000个函数调用中,这对于性能是否是一个坏主意?我应该咬紧牙关,只需在迭代时调用cout?我不愿意这样做,因为我试图让我的用户界面与我的程序逻辑和数据完全隔离.我知道最后它真的没关系,因为它只是一个类赋值,但假设这是我想长期保持的代码,那么"最佳"实践会在这里做什么?
简答:不要担心.4k间接通话并不是什么大问题.如果您担心性能,请执行以下操作:
请记住,"过早优化是所有邪恶的根源."
版本稍长:您可以按如下方式定义回调:
template <typename IteratorType>
void my_multi_callback(iterator start, iterator end);
Run Code Online (Sandbox Code Playgroud)
然后,驱动程序可以只传递适当的map迭代器(描述要打印的事物的范围).然后回调为每个元素执行输出,因此您可以避免重复的间接函数调用.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |