Изменение элементов
Элемент вектора можно и изменить. Напишите имя вектора и индекс в квадратных скобках, как при чтении элемента, и присвойте новое значение с помощью =, как переменной:
std::vector<std::string> resolutions = {"Вести дневник", "Записаться на курс соколиной охоты", "Научиться жонглировать"};
resolutions[1] = "Записаться на курс живописи";
std::cout << resolutions[0] << ", " << resolutions[1] << ", " << resolutions[2] << std::endl;Программа выведет:
Вести дневник, Записаться на курс живописи, Научиться жонглироватьУ элемента с индексом 1 теперь новое значение, а старое пропало. Ничего не вставлялось и не сдвигалось: в векторе по-прежнему три элемента, а остальные остались прежними.
Следите, чтобы не написать == вместо =. Инструкция resolutions[1] == "Записаться на курс живописи"; только сравнивает значения и ничего не меняет. Программа не сообщает об ошибке, вектор просто остаётся прежним.
Элемент вектора ведёт себя как переменная своего типа. Поэтому с элементами вектора чисел можно вычислять, а +=, -= и ++ тоже работают:
std::vector<int> points = {12, 7, 30};
points[1] += 5;
points[2]++;
std::cout << points[0] + points[1] << std::endl;
std::cout << points[1] << " " << points[2] << std::endl;Программа выведет:
24
12 31points[1] += 5; прибавила пять ко второму элементу, а points[2]++; увеличила третий элемент на единицу.
Задание
- 1
Артём перешёл в другую команду, и его место занял Даниил. Под строкой вывода напишите инструкцию, которая меняет второй элемент вектора
colleaguesна"Даниил". - 2
Затем выведите вектор ещё раз таким же способом, например скопировав строку вывода. Теперь в выводе вектор виден до и после изменения:
Павел, Артём, Лиза Павел, Даниил, Лиза