gpt4 book ai didi

c++ - 用于替换 vector 中字节范围的标准函数

转载 作者:太空狗 更新时间:2023-10-29 20:35:24 29 4
gpt4 key购买 nike

我有一个字节 vector (std::vector):[1,1,1,9,9,9,1,1,1]

我想用未知长度的字节替换字节 3-6(我会在运行时知道。)。因此 vector 的长度可能会增长、偏移或保持不变。但是我知道我要替换的字节的起点和终点。

我可以使用删除或插入来调整大小,然后将新数据循环到旧数据上。

std::replace 进行搜索并替换匹配的字节,而我知道我想替换哪些字节。而 std::replace 似乎只替换一个元素。我想用数据 block 替换。

肯定有一个 std 函数可以“巧妙地”做到这一点?(如果我愿意,我会叫你 Shirely)。

最佳答案

如果所有值都相同并且您知道要替换的区间在 vector 内,请使用 std::fill :

std::fill(v.begin() + 3, v.begin() + 6, 9);

此行会将 vector v 上的元素 3-6 替换为值 9。

如果您要放置的值不完全相同,请改用 std::copy(您需要确保替换适合 vector ):

std::copy(replacement.begin(), replacement.end(), v.begin() + 3); 

这将从位置 3 开始的 vector v 的内容替换为 replacement 的内容。

如果不确定 vector 的大小,可以先修正大小:

v.resize(6);

关于c++ - 用于替换 vector 中字节范围的标准函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42762946/

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