Итоги
В этом уроке вы узнали, что:
- Вектор хранит в одной переменной несколько значений одного типа, свои элементы, в определённом порядке. Для него нужен
#include <vector>. Тип элементов указывается в угловых скобках:std::vector<int> scores = {85, 92, 78};илиstd::vector<std::string> names = {"Анна", "Тимур"};.std::vector<int> points;— пустой вектор. - У каждого элемента есть индекс, который считается от 0.
names[0]читает первый элемент,names[1] = "Лиза";меняет второй. Элемент ведёт себя как переменная своего типа, поэтомуscores[0] += 1;тоже работает. - Весь вектор с помощью
std::coutвывести нельзя. Выводите его по элементам. - Метод — это команда, которая принадлежит значению. Он пишется после точки, и за ним всегда следуют круглые скобки.
names.size()возвращает число элементов. Последний элемент находится по индексуnames.size() - 1. - Квадратные скобки не проверяют индекс: индекс за пределами вектора читает бессмысленное значение, или программа аварийно завершается.
names.at(5)проверяет индекс и, если он за пределами вектора, останавливает программу с ошибкойout_of_range. push_back()добавляет элемент в конец вектора.pop_back()удаляет последний элемент и ничего не возвращает, поэтому нужный элемент прочитайте до удаления.- Вектор может содержать другие векторы, которые называются вложенными векторами:
std::vector<std::vector<std::string>> teams.teams[1][0]— первый элемент второго внутреннего вектора. - Строка
std::string— это последовательность символов типаchar. Символ читается с помощьюtext[0]илиtext.at(0), а число символов возвращаютtext.size()илиtext.length(). Символ пишется в одинарных кавычках:'A'. Русские буквы и буквы с диакритическими знаками занимают дваchar, поэтому тексты, с которыми вы работаете посимвольно, пишите латиницей.
В следующем уроке, о циклах, вы научитесь повторять код, например перебирать по очереди все элементы вектора, сколько бы их ни было. Но сначала потренируйтесь на показаниях термометра.
Задание
- 1
Последнее показание,
99, — ошибка термометра. Удалите его изtemperaturesс помощьюpop_back(), а затем добавьте в конец вектора правильное значение25с помощьюpush_back(). - 2
Выведите первую температуру, последнюю температуру и число измерений, чтобы в выводе была строка
Первая: 18, последняя: 25, измерений: 5. Последнюю температуру найдите с помощьюsize() - 1. - 3
Ниже напишите условие: если последняя температура выше первой, выведите
Становится теплее, иначе выведитеСтановится холоднее. (Когда этот шаг будет пройден, попробуйте поменять правильное значение с25на15и посмотрите, что выведет программа.)