Как реверсирование std :: string в C ++ работает с этим конструктором? - PullRequest
0 голосов
/ 06 мая 2018
std::string original;
std::string reversed(original.rbegin(), original.rend());

Я нашел этот метод для изменения std::string, но я не понимаю, как он работает. Можете ли вы дать мне объяснение?

1 Ответ

0 голосов
/ 07 мая 2018

В коде:

std::string original;
std::string reversed(original.rbegin(), original.rend());

Конструктор , который вызывается:

template< class InputIt >
basic_string( InputIt first, InputIt last, 
              const Allocator& alloc = Allocator() );

Создает строку с содержимым диапазона [first, last).

Следовательно, будет использован диапазон итераторов [original.rbegin(), original.rend()). rbegin() и rend() возврат обратный итератор. Это означает, что диапазон начинается с последнего символа исходной строки и заканчивается первым символом (rend() указывает на предыдущий символ на тот, который не будет доступен для конструктора, так как эта сторона интервала открыта) .

...