gpt4 book ai didi

c++ - 如何将未知数量的元素输出到标准容器

转载 作者:行者123 更新时间:2023-11-30 02:34:57 25 4
gpt4 key购买 nike

我有以下功能:

template <class Titerator>
void detect_corners(cv::Mat const& frame, Titerator begin_corners);

它应该输出 4 个角到 begin_corners。所以,一切都很好,很容易。但是,要求发生了变化,它现在可以返回任意数量的角点。在不失去概括性的情况下处理这个问题的最佳方法是什么?我的意思是我不想使用 always vector 而不是通用迭代器。

附言调用这个函数的时候不知道会得到多少个角。该函数应该运行,然后它知道。

最佳答案

只需使用 OutputIterator .无需更改您的声明,但我给出的名称说明了迭代器必须是 OutputIterator 的要求。

template <class IterOut>
void detect_corners(cv::Mat const& frame, IterOut out) {
while(condition) {
*out++ = whatever;
}
}

您可以获得任何标准容器的输出迭代器。例如, vector 的后插入器:

std::vector<T> v;
detect_corners(frame, std::back_inserter(v));

关于c++ - 如何将未知数量的元素输出到标准容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156595/

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