- Для конечной точки строки:
Предположим, что внутренняя строка символов заканчивается нулем. Затем путем разыменования итератора, чтобы увидеть, являются ли они '\ 0', чтобы определить следующую позицию, является конечной точкой. Но для другой строки, не заканчивающейся нулем, такую информацию узнать невозможно.
- Для начальной точки строки:
Нет способа сделать это.
Стандартный std :: string :: iterator - это случайный двунаправленный итератор, который ничего не знает о контейнере.
Но если вы работаете на платформе Visual C ++, возможно, вы можете использовать какой-нибудь способ взлома, например, следующий, чтобы получить элемент управления для своего контейнера, но это очень опасно:
// it is the passed in string::iterator parameter.
if (it._Has_container()) {
string* strRef = (string*)it._Mycont;
}