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

Бен*_*ито 0 c++ string vector type-conversion

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

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

Nat*_*ica 5

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

std::string myString(Buffer.begin() + 5, Buffer.end());
Run Code Online (Sandbox Code Playgroud)

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

std::string myString(std::next(Buffer.begin(), 5), Buffer.end());
Run Code Online (Sandbox Code Playgroud)

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

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