gpt4 book ai didi

c++ - 从容器中提取段的函数

转载 作者:行者123 更新时间:2023-11-28 02:47:22 25 4
gpt4 key购买 nike

假设我使用了 remove(v.begin(), v.end(), value)其中 vvector或标准库中的其他一些容器类。

此函数将不需要的值移动到容器的末尾。是否有来自任何标准库的函数可以切断容器的那一端,从而有效地减小其大小? (remove 的这种情况只是一个例子,这种“提取”操作会有许多其他不同的情况和情况)。

函数会是这样的:chop(new_begin, new_end)其中 new_beginnew_end是指向所需新容器限制的迭代器。

我可以用几行代码轻松地做到这一点,但如果已经有一个函数可以做到这一点,这似乎是个好主意。我瞥了一眼 <algorithm> header ,但我没有找到这样的工具。

最佳答案

您可以使用 std::copy 将迭代器带到要复制的序列的开头和结尾。这样就可以将指定范围内的元素复制到新的容器中。您也可以使用两个调用的组合来删除,但对于某些容器,删除不是最后的元素效率不高(例如对于 std::vector),因此这种方法会更慢。

关于c++ - 从容器中提取段的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23970783/

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