Получение последнего символа в потоке строки без копирования всего его буфера

Если я использую этот код:

template <typename Streamable>
/* ... */
std::stringstream ss;
ss << function_yielding_a_Streamable();
auto last_char = ss.str().back();

тогда (я полагаю) копия строки в ssНужно создать буфер для того, чтобы я получил последний символ, и затем он будет уничтожен. Могу ли я сделать что-то лучше вместо этого? Возможно, используя seekp() метод?

6

Решение

Вы могли бы сделать что-то вроде этого:

char last_char;
std::stringstream ss;
ss << function_yielding_a_Streamable();
ss.seekg(-1,ios::end);//get to the last character in the buffer
ss>>last_char;
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]