Посмотрите на этот след отладки. Последнее, что выполняется, это std :: copy (__ first = 0x90c6fa8, __last = 0x90c63bc, __result = 0x90c6878). Оглядываясь назад на то, что вызвало это, вы назвали insert, давая позицию для вставки, как 0x90c63bc. std :: copy копирует диапазон [first, last) в результате, который должен иметь место для элементов last - first. Этот вызов имеет значение last
кадр 10
печать внум
проверить. На самом деле, если вы не просто сократили свой вопрос, я только что нашел вашу ошибку. Ваша вторая строка:
new_mesh->Face(face_loc)->vertices.insert(vertices.begin()+vnum+1, new_vertices[j]);
Это должно было быть:
new_mesh->Face(face_loc)->vertices.insert(new_mesg->Face(face_loc)->vertices.begin()+vnum+1, new_vertices[j]);
В первой строке указывается точка вставки относительно начала некоторой другой переменной, называемой вершинами, а не той, в которую вы хотите вставить.