У меня очень большой массив wchar_t. Я хотел бы построить wstring из части этого массива wchar_t, например, между i и j.
Я не хочу превращать массив больших символов в строку wstring, а затем брать подстроку.
Как я могу сделать это, пожалуйста?
Используйте конструктор пары итераторов:
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
если беспокоится и об универсальных, так как он работает как с массивами, так и со стандартными контейнерами.
Других решений пока нет …