我正在使用一个继承自OpenCV Rect的A类。A类只是在执行期间添加了一些我想要跟踪的变量。
class A: public Rect { //code, constructors... }
我希望使用opencv方法
detectMultiScale
,它需要一个空的vector<Rect>
并将其填充为期望的输出结果。我应该如何传递一个继承自Rect的空向量,即
vector<A>
,并期望在方法中捕获基类?(我此时明白这个方法是黑箱,我不想编译opencv来重新声明一些内容。)
vector<Rect>
和一个vector<A>
是两种完全不同的类型。如果函数需要一个vector<Rect>
,你必须发送一个vector<Rect>
,不能发送其他类型。 - PaulMcKenzievector<Rect>
,并让每个A
拥有指向vector<Rect>
中某个项目的指针 -- 需要注意的是,必须确保向量永远不会被调整大小,因为指向向量中元素的指针在调整大小时可能会失效。 - PaulMcKenzieRect
很耗费资源,可以在A
中存储std::vector
的索引。并将向量本身存储在某个地方。 - StoryTeller - Unslander Monica