2015-04-28 77 views
-1

我正在使用OpenCV示例。我不知道如何在数组中放置许多矩形的大小(宽度*高度)(通过调用循环中类Rect的成员函数“size”获得)。将成员函数的返回值存储在C++中的数组中

我打算使用指针将矩形的大小分配给数组。

任何建议表示赞赏。谢谢。

+2

你的意思是,像'arr [i] = size(...);'? – Quentin

+0

为什么不把矩形本身或指向矩形的指针放在数组中?矩形只是位置,宽度和高度以及相应的方法。应该没有理由发明另一种高度和宽度的存储机制。 –

+0

另外考虑使用一个矢量(std :: vector),而不是一个数组,除非你确切知道你将要处理多少个矩形,而且这个数字永远不会改变。 –

回答

0

有一个非常好的talk为什么你应该尝试使用算法而不是循环。

如果您有Rects的Container,则可以使用std::transform。如果你的容器被称为rects并且要在以存储阵列的尺寸,这将被用来作为

std::transform(rects.begin(), rects.end(), array, [](const Rect &rect) { 
    return rect.size().area(); 
}); 

要查找特定大小(命名为requested_size)的矩形,你可以使用

std::find_if(rects.begin(), rects.end(), [requested_size](const Rect &rect) { 
    return requested_size==rect.size().area(); 
});