在C ++中从char数组的一部分构造一个字符串

时间:2013-03-17 21:11:45

标签: c++ string arrays wstring

我有一个非常大的wchar_t数组。我想从这个wchar_t数组的一部分构造一个wstring,例如在i和j之间。

我不想将大字符数组转换为wstring,然后取一个子字符串。

我该怎么办呢?

1 个答案:

答案 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,因为它适用于数组和标准容器。