Проект блестящего нового класса строк стандартной библиотеки был уже сделан, когда Страуструп представил стандартную комиссию в STL.Комитету понравилось STL, и он начал включать его в стандарт, тем самым адаптируя многое из того, о чем они уже договорились (и, возможно, также отложив стандарт на другой год или два).
Среди других изменений, итераторы были добавлены в уже законченный класс строки как запоздалое размышление.Вы можете увидеть это, посмотрев на различные строковые члены, занимающие / возвращающие позицию - это дикое сочетание индексов и итераторов.
Не всегда легко догадаться, почему некоторые функции-члены имеют только версии, принимающие индексы, а некоторые - итераторы.Однако в случае std::basic_string<>::find()
это кажется простым: поскольку std::find()
уже возвращает итератор, std::basic_string<>::find()
остался таким, каким был.