【发布时间】:2016-09-27 08:00:12
【问题描述】:
我正在寻找一个类似于 memcpy 的现有函数,可以告诉它复制 x 个字节,然后跳过 y 个字节,重复直到复制了指定的数量.
想象一个带有数据的缓冲区:AABAAB(我使用了字符,但我操作的数据不是字符串数据)。
当应用于此缓冲区并被告知复制 2 个字节并跳过 1 个字节时,目标缓冲区将包含:AAAA。
我没有通过 STL 和 Boost 找到任何东西,但我希望其中有一些我错过的东西。
或者也许有一个聪明的(而不是讨厌的)方法来使用更常见的功能来实现同样的事情。
【问题讨论】:
-
我不是 Boost 用户,但是在循环中使用
memcpy()编写这不是很简单吗?您是否不再被允许用现代 C++ 编写新代码? :) -
也许你可以使用
std::copy_if -
我希望能够利用一个经过优化的、经过测试的功能——我真的没有时间去实现......不过,如果涉及到它,那就是我必须要做。
-
您是在谈论原始数据还是字符串操作。 Memcpy() 应该适用于原始数据。但是,对于字符串等,您可以使用 std::transform(),您可以在其中定义 lambda 函数中的行为
-
@Dkg 原始数据 - 我会更新我的问题。