我是 C++ 的新手,我在弄清楚什么是执行此操作的最佳方法时遇到了一些麻烦。
我已经实现了一个类,我们称它为 imageContainer,它有一个私有(private)的图像 vector 和用图像填充这个 vector 的方法。假设现在,我有另一个具有私有(private) imageContainer 的类,现在,在正确初始化此 imageContainer(读取我希望它包含的图像)之后,我需要处理它的图像。请记住,我的处理不会更改基本图像,只会使用它们计算一些东西。在不复制图像的情况下获取这些图像的最佳、最安全的方法是什么?我想避免复制它们,因为我可能有很多大图像,这会使复制过程非常缓慢。
哦,我正在阅读的图像都是 openCV 的 Mat 类型。 Mat 上的“=”运算符不会复制 Mat,它只会共享数据,这让我认为获取图像的最佳方式是:
Mat imageContainer::getImage(size_t index)
{
return vectorOfImages[index];
}
但我不太确定。
提前致谢!
最佳答案
返回一个引用以避免复制并将其设为 const 以禁止修改:
const Mat& imageContainer::getImage(size_t index) const
{
return vectorOfImages[index];
}
关于c++ - 获取私有(private)实例变量容器成员值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125180/