Бен*_*ито 0 c++ string vector type-conversion
我想将向量的一部分转换为字符串,我发现了这个
std::string myString(Buffer.begin(), Buffer.end());(缓冲区是向量)
但在这里我转换了整个向量。如果我想跳过向量的前 5 个字符并转换其余字符,最简单的方法是什么?就像''.join(Buffer[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在执行此操作之前,您还需要确保容器的大小至少是大小,否则如果容器太小,则会出现未定义的行为。
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |