我有一个使用 3rd 方库的项目,该库创建了一个需要传入以下参数的方法: const std::vector< const Image *>
当尝试创建一个std::vector< Image * >
允许灵活地将项目生成到向量中的方法时,我无法将此类型传递给该方法。我假设 VC++ 2010 会通过参数类型显示该方法的意图,但它似乎需要该参数类型声明才能将其传递。这是我最终使用的编译:
const Image *SRImages1 = &SRImages[0];
const Image *SRImages2 = &SRImages[1];
const std::vector< const Image *> SRImageVector(&SRImages1, &SRImages2);
tungsten::vision::SuperResolution::ResultEnum r = SR.enhance( &resultImage, SRImageVector, referenceImageIndex, referenceImageROI, interlaced, asynchronous, listener);
当然,这是非常严格的,我希望能够通过使用 push_back 运算符将项目动态生成到向量中。
为什么 MS VC++ 需要这个,我如何在这些限制内工作以创建我可以操作的向量?
编辑:从 OP 的评论中复制:
这是 .h 文件中的签名:
ResultEnum enhance( Image *result,
const std::vector<const Image*> &images,
unsigned int referenceImageIndex,
Rectangle referenceImageROI,
bool interlaced,
bool asynchronous,
SuperResolutionListener *listener );