gpt4 book ai didi

c++ - 当列表/数组中的元素数量可变时,哪种结构最适合实现?

转载 作者:太空狗 更新时间:2023-10-29 23:31:32 26 4
gpt4 key购买 nike

我有一个稍微具体的问题。我在 OpenCV 中使用 C/C++。我的目标是将检测到的矩形存储在列表/数组样式结构中。但是,长度对于每一帧(迭代)都是可变的。

我应该用什么来存储这些信息?我想到了链表,但是,它们遍历速度很慢,而且如果节点数量减少,我将不得不手动删除额外的节点,这会占用更多的处理器时间。我放弃了数组,因为它们在长度方面不是很灵活。我可以用 malloc 做动态数组,但即便如此我认为我仍需要指定元素的最大数量。

如果我有什么地方不对,请随时纠正我。另外,请分享您的观点,让我知道您认为解决此问题的最佳方法是什么?

谢谢

编辑:我不限于 C(我知道我提到了 malloc)。我可以使用 C++ 功能,而且我程序的其余部分不使用任何 C 特定功能。所以请随时向我建议任何更好的方法。

最佳答案

我建议您使用 std::vector . std::vector 中的元素由 C++ 标准保证是连续的,就像 C array 一样。这允许 std::vector成为 C++ 数据结构和 C 函数之间的接口(interface)。您可以使用 std::vector<T>::resize以确保在将其传递给 OpenCV 函数之前分配了空间。

哦,要获得指向 vector 内部存储的指针,您通常使用以下表示法:&rectangleCollection[0] .

祝你好运!

关于c++ - 当列表/数组中的元素数量可变时,哪种结构最适合实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com