Я думаю, что наиболее вероятная проблема из того, что вы описали, заключается в том, что insert () вызывается с недопустимой позицией в конце строки (т.е.> size ()). Вы говорите, что этот пример подобен функциям, которые вы вызываете, поэтому проверьте те, которые вы, возможно, написали, где вы, возможно, проходите позицию иначе, чем в приведенном выше примере кода, и убедитесь, что значение соответствует ожидаемому.
Сообщение о прекращении вызвано тем, что вы не обрабатываете исключение out_of_range
(через блоки try / catch), поэтому оно выходит за пределы времени выполнения языка C ++, что бесцеремонно завершает работу вашей программы.