Форум программистов, компьютерный форум CyberForum.ru

Запутался с итераторами - C++

Восстановить пароль Регистрация
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
15.10.2013, 23:28     Запутался с итераторами #1
Привет. Никак не могу понять почему ошибка?

C++
1
2
3
4
5
6
7
8
std::string s = "sEReGA";
 
for (std::string::iterator i = s.begin(); i != s.end(); ++i)
{
    s.insert(i, '!');       
}
 
std::cout << s << std::endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 23:28     Запутался с итераторами
Посмотрите здесь:

итераторами для std::set C++
C++ Помогите разобраться с итераторами
Действие с итераторами C++
запутался со списком C++
C++ Работа с итераторами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11825 / 6804 / 769
Регистрация: 27.09.2012
Сообщений: 16,871
Записей в блоге: 2
Завершенные тесты: 1
15.10.2013, 23:33     Запутался с итераторами #2
А как Вы хотите достигнуть конца строки, если постоянно её длина увеличивается?
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
15.10.2013, 23:35     Запутался с итераторами #3
Да еще итератор после любой вставки может стать невалидным.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,410
16.10.2013, 02:29     Запутался с итераторами #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main()
{
    std::string s = "sEReGA", s2;
    for (auto c: s)
    {
        s2 += c;
        s2 += '!';
    }
    s.swap(s2);
    std::cout << s;
}
Yandex
Объявления
16.10.2013, 02:29     Запутался с итераторами
Ответ Создать тему
Опции темы

Текущее время: 17:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru