Вот код:
listOfFoos::iterator new_foo_it = listOfFoos.insert(listOfFoos.end(),newFoo);
listOfFoos и есть std::list объектов foo. Обычно вы пишете:
listOfFoos::iterator new_foo_it = listOfFoos.begin();
Я также понимаю, что list.insert() вставит newFoo по указанному индексу, тогда итератор будет создан. Но я не знаю, как вставка влияет на положение итератора.
Повторно запускает итератор, указывающий на первый из вставленных элементов. Вы можете прочитать это здесь: cplusplus.com/reference/list/list/insert или здесь: en.cppreference.com/w/cpp/container/list/insert Я предлагаю использовать одну из страниц в качестве справочника по C++. Оба хороши, использование должно зависеть от ваших предпочтений. Задавая такие вопросы о stackoverflow, вы получите отрицательные баллы, поскольку этот ответ можно найти в справочнике по языку.
Спасибо вам за ссылки. Я прочитал документацию на cplusplus.com, но я неправильно ее истолковал. Прошу прощения за неудобства.





Это хорошо задокументировано в руководстве.
An iterator that points to the first of the newly inserted elements.
В вашем случае new_foo_it после listOfFoos.insert одного элемента указывает на последний элемент списка, он указывает на newFoo.
Это совершенно то, что вы могли бы найти самостоятельно, если бы читали документацию list :: insert.