0

我是 C++ 的新手,我在弄清楚什么是最好的方法时遇到了一些麻烦。

我已经实现了一个类,我们称之为 imageContainer,它有一个私有的图像向量和用图像填充这个向量的方法。假设现在,我有另一个具有私有 imageContainer 的类,现在,在正确初始化此 imageContainer(读取我希望它包含的图像)之后,我需要处理它的图像。请记住,我的处理不会更改基本图像,只会使用它们计算一些东西。在不复制它们的情况下,获取这些图像的最佳、最安全的方法是什么?我想避免复制它们,因为我可能有很多大图像,这会使复制过程非常缓慢。

哦,我正在阅读的图像都是 openCV 的 Mat 类型。Mat 上的“=”运算符不会复制 Mat,它只共享数据,这让我认为获取图像的最佳方法是:

Mat imageContainer::getImage(size_t index)
{
    return vectorOfImages[index];
}

但我不太确定。

提前致谢!

4

1 回答 1

4

返回引用以避免复制并将其设为 const 以禁止修改:

const Mat& imageContainer::getImage(size_t index) const
{
  return vectorOfImages[index];
}
于 2012-08-25T19:58:35.673 回答