将向量的一部分转换为字符串的最简单方法是什么?

我想将向量的一部分转换为字符串,我发现了这个
std::string myString(Buffer.begin(), Buffer.end());(缓冲区是向量)

但在这里我转换了整个向量。如果我想跳过向量的前 5 个字符并转换其余字符,最简单的方法是什么?就像''.join(Buffer[5::])是蟒蛇一样。

回答

只需将您的偏移量添加到begin. 由于 avector具有随机访问迭代器,因此您可以使用

std::string myString(Buffer.begin() + 5, Buffer.end());

如果您不确定您的容器正在使用什么类型的迭代器,您可以使用std::next

std::string myString(std::next(Buffer.begin(), 5), Buffer.end());

它将处理所有迭代器类型,它也可能是 O(N) 操作。

5在执行此操作之前,您还需要确保容器的大小至少是大小,否则如果容器太小,则会出现未定义的行为。


以上是将向量的一部分转换为字符串的最简单方法是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>