我有一个非常大的wchar_t数组。我想从这个wchar_t数组的一部分构造一个wstring,例如在i和j之间。
我不想将大字符数组转换为wstring,然后取一个子字符串。
我该怎么办呢?
答案 0 :(得分:7)
使用迭代器对构造函数:
std::wstring str(arr + i, arr + j + 1); //need one past the end
在这种情况下,添加有效,因为指针是随机访问迭代器。对于在迭代器不支持operator+
时有效的通用表单,请使用std::next(arr, i)
和std::next(arr, j + 1)
。如果担心泛型也可以使用std::begin
代替arr
,因为它适用于数组和标准容器。