Метод end
Метод end возвращает итератор, который указывает на позицию, следующую за последним символом строки. Важно понимать, что этот итератор не указывает на какой-либо реальный символ. Его часто используют для обозначения конца диапазона при переборе символов строки. Метод не принимает параметров и не изменяет саму строку.
Синтаксис
str.end()
Пример
Давайте получим итератор на конец строки и сравним его с итератором, указывающим на последний символ, полученным с помощью метода begin и прибавления числа 5 (длины строки):
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
auto it_end = str.end();
auto it_last = str.begin() + 5;
if (it_end == it_last) {
cout << "Iterators match" << endl;
} else {
cout << "Iterators differ" << endl;
}
return 0;
}
Результат выполнения кода:
"Iterators match"
Пример
Давайте переберём все символы строки, используя итераторы, полученные с помощью методов begin и end:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
for (auto it = str.begin(); it != str.end(); ++it) {
cout << *it;
}
cout << endl;
return 0;
}
Результат выполнения кода:
"abcde"