使用动态数组结构的一个好处是什么,使用动态数组结构的一个好处在于
像这样的容器。我开始考虑用std:vector。
只是为了避免动态记忆的痛苦。一方面,不需要手动打开和释放内存。其实你在使用的过程中会逐渐发现std:vector是被用到的。
的好处。我今天发现了一个好处。
今天修改了一个别人写的图像匹配算法。所谓图像匹配,就是找出两幅图像的相似之处。在我的算法中,就是找出匹配的结果点。别人的代码大致是这样的:
说实话,我不喜欢这种功能的设计。为什么?因为我觉得为了避免内存泄露,最好遵循这样一个原则:函数外应用的内存在函数外释放,函数内应用的内存在函数内释放。如果像上面的功能设计,用户会经常忘记发布。
pResultPt
记忆,而且这个释放也感觉不自然。首先,我想把它设计成这样:
上面的代码符合函数外应用的内存在函数外释放,函数内应用的内存在释放的原理,但还是给人一种别扭的感觉。第一,寻找匹配点,你要打开一个整幅图片的大数组(满足寻找匹配点的需要,又担心不够用),但匹配点往往只占图像的一小部分;其次,增加输入函数的参数。除了匹配点数组的指针,很难输入数组。输入参数的增加往往会增加用户的难度,例如,用户可能会感到困惑。
InitPtNum
此参数代表的含义
最后,我觉得什么是理想的设计?用户只需要输入两张图片的文件句柄和动态数组,调用后返回这个数组。所以我想到了以下设计:
这样一来,首先你不用打开释放内存;其次,你不必为了处理一个不确定的情况而打开一个大内存;第三,别人用起来很自然。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。