-1
我正在使用OpenCV示例。我不知道如何在数组中放置许多矩形的大小(宽度*高度)(通过调用循环中类Rect的成员函数“size”获得)。将成员函数的返回值存储在C++中的数组中
我打算使用指针将矩形的大小分配给数组。
任何建议表示赞赏。谢谢。
我正在使用OpenCV示例。我不知道如何在数组中放置许多矩形的大小(宽度*高度)(通过调用循环中类Rect的成员函数“size”获得)。将成员函数的返回值存储在C++中的数组中
我打算使用指针将矩形的大小分配给数组。
任何建议表示赞赏。谢谢。
有一个非常好的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();
});
你的意思是,像'arr [i] = size(...);'? – Quentin
为什么不把矩形本身或指向矩形的指针放在数组中?矩形只是位置,宽度和高度以及相应的方法。应该没有理由发明另一种高度和宽度的存储机制。 –
另外考虑使用一个矢量(std :: vector),而不是一个数组,除非你确切知道你将要处理多少个矩形,而且这个数字永远不会改变。 –