gpt4 book ai didi

c++ - 如何用 vector 中的另一个范围替换一个范围?

转载 作者:行者123 更新时间:2023-12-02 10:23:02 25 4
gpt4 key购买 nike

我想用单个其他元素(从该范围构建,但没关系)替换 vector 中的一系列元素。我不想先删除然后再插入,因为所有后续元素我都会移动两次。

我想我们可以通过用另一个范围替换一个范围来概括这一点,无论它们的大小。用一些东西替换一个空范围,你就会得到插入。用空范围替换一些东西,你会得到删除。

无论如何replace似乎没有这样做。它用给定元素的拷贝替换所有或部分元素。没有四处走动。
swap_ranges一个一个地交换元素,既不删除也不插入。

我错过了algorithm为了那个原因?也许是成员函数?

也许我应该使用 list然后?

最佳答案

I want to replace a range of elements in a vector by a single other element



据我所知,标准库中没有这方面的算法。但它可以相当简单地构建在现有的之上:删除除第一个范围之外的所有内容。分配未删除的元素。在空范围的特殊情况下,插入而不是分配。将迭代器返回到已删除元素的开头(迭代器在没有删除任何内容的情况下结束),以便调用者可以删除它们。

I figured we could generalize that with the replacement of a range by another range



这与单插入变体几乎相同,但更复杂。将分配替换为 std::copy ,并考虑到还有一种情况,即您根据输入范围的长度同时分配(复制)和插入子范围。

订单分配、删除、插入无关紧要。

关于c++ - 如何用 vector 中的另一个范围替换一个范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59231403/

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