как узнать размер вектора
Векторы в C++: для начинающих
Всем привет! До этого дня мы использовали чистые массивы. Чистые — это значит простые массивы, не имеющие у себя в багаже различных функций. В этом уроке мы пройдем нечистые массивы — векторы.
Быстрый переход по статье:
Что такое вектор (vector)
Вектор — это структура данных, которая уже является моделью динамического массива.
Давайте вспомним о том, что для создания динамического массива (вручную) нам нужно пользоваться конструктором new и вдобавок указателями. Но в случае с векторами всего этого делать не нужно.
Вообще, по стандарту пользоваться динамическим массивом через конструктор new — не есть правильно. Так как в компьютере могут происходить различные утечки памяти.
Как создать вектор (vector) в C++
Кстати, сейчас и в будущем мы будем использовать именно шаблон вектора. Например, очередь или стек, не созданные с помощью массива или вектора, тоже являются шаблонными.
Далее, чтобы объявить вектор, нужно пользоваться конструкцией ниже:
В примере выше мы создали вектор строк.
Кстати, заполнить вектор можно еще при инициализации (другие способы мы пройдем позже — в методах вектора). Делается это также просто, как и в массивах. Вот так:
После имени вектора ставим знак равенства и скобки, в которых через пробел указываем значение элементов.
Такой способ инициализации можно использовать только в C++!
Второй способ обратиться к ячейке
Но в C++ есть еще один способ это сделать благодаря функции — at(). В скобках мы должны указать индекс той ячейки, к которой нужно обратиться.
Вот как она работает на практике:
Давайте запустим эту программу:
Как указать количество ячеек для вектора
Указывать размер вектора можно по-разному. Можно это сделать еще при его инициализации, а можно хоть в самом конце программы. Вот, например, способ указать длину вектора на старте:
Так в круглых скобках () после имени вектора указываем первоначальную длину. А вот второй способ:
Вы можете задать логичный вопрос:»А в чем разница?». Давайте создадим два вектора и по-разному укажем их количество ячеек.
Как видим, в первом случае мы вывели три нуля, а во втором: 17, 0, 0.
Все потому, что при использовании первого способа все ячейки автоматически заполнились нулями.
При объявлении чего-либо (массива, вектора, переменной и т.д) мы выделяем определенное количество ячеек памяти, в которых уже хранится ненужный для ПК мусор. В нашем случае этим мусором являются числа.
Поэтому, когда мы вывели второй вектор, в нем уже находились какие-то рандомные числа — 17, 0, 0. Обычно они намного больше. Можете кстати попробовать создать переменную и вывести ее значение.
Нужно помнить! При использовании второго способа есть некоторый плюс — по времени. Так как для первого способа компилятор тратит время, чтобы заполнить все ячейки нулями.
Как сравнить два вектора
Если в середине программы нам понадобиться сравнить два массива, мы, конечно, используем цикл for и поочередно проверим все элементы.
Вектор снова на шаг впереди! Чтобы нам сравнить два вектора, потребуется применить всего лишь оператор ветвления if.
Модуль вектора. Длина вектора.
Определение длины вектора
Для обозначения длины вектора используются две вертикальные линии слева и справа | AB |.
Формулы длины вектора
Формула длины вектора для плоских задач
В случае плоской задачи модуль вектора a = < ax ; ay > можно найти воспользовавшись следующей формулой:
Формула длины вектора для пространственных задач
В случае пространственной задачи модуль вектора a = < ax ; ay ; az > можно найти воспользовавшись следующей формулой:
Примеры задач на вычисление длины вектора
Примеры вычисления длины вектора для плоских задачи
Решение: | a | = √ 3 2 + (-4) 2 = √ 9 + 16 = √ 25 = 5.
Примеры вычисления длины вектора для пространственных задачи
Решение: | a | = √ 2 2 + 4 2 + 4 2 = √ 4 + 16 + 16 = √ 36 = 6.
Примеры вычисления длины вектора для пространств с размерностью большей 3
Решение: | a | = √ 1 2 + (-3) 2 + 3 2 + (-1) 2 = √ 1 + 9 + 9 + 1 = √ 20 = 2√ 5
Любые нецензурные комментарии будут удалены, а их авторы занесены в черный список!
Добро пожаловать на OnlineMSchool.
Меня зовут Довжик Михаил Викторович. Я владелец и автор этого сайта, мною написан весь теоретический материал, а также разработаны онлайн упражнения и калькуляторы, которыми Вы можете воспользоваться для изучения математики.
Операции с векторами
Как сложить и перемножить векторы (и зачем).
Мы постепенно показываем вам математику за пределами школьной программы. Начинали со знакомства с векторами, теперь сделаем следующий шаг.
Напомним основные мысли:
С векторами можно совершать некоторые математические операции. Вот о них и поговорим.
Правильно — векторы
Математики часто говорят во множественном числе «вектора», но по словарю правильно «векторы». Это такой профессиональный жаргон, как «договора», «бухгалтера» и «сервера». Мы будем использовать «векторы», но если вы окажетесь в постковидном математическом баре, лучше говорите «вектора».
Сложение
Представим четыре вектора, которые лежат в двухмерном пространстве и пока что не связаны между собой. Нарисуем эти векторы и обозначим их буквами X, Y, Z, K.
Поскольку векторы находятся в одном пространстве, координаты каждого состоят из одинакового количества чисел. У нас пример с двухмерным пространством и два числа. Выглядеть это будет так: X = (6, 4); Y = (3, −2); Z = (−7, −5); K = (−10, 4).
Векторы X, Y, Z, K в двухмерном пространстве
Если у нас несколько векторов с одинаковым количеством чисел, то эти числа можно поэлементно складывать. Для этого мы берём первое число одного вектора, складываем его с первым числом другого вектора и так далее.
Предположим, нам нужно сложить векторы X и Y.
X = (6, 4)
Y = (3, −2)
X + Y = (9, 2)
Вроде просто: складываешь последовательно все координаты, результаты сложения складываешь в исходные коробочки. Так можно делать с любым количеством координат. Помните, что вектор — это необязательно стрелка в двумерном пространстве. Она может быть и в десятимерном пространстве — с точки зрения математики это неважно.
Например, вот сложение векторов с пятью координатами:
Интуитивное изображение сложения
Для интуитивного восприятия удобно использовать векторы с двумя координатами. Их удобно рисовать на координатной плоскости и таким образом смотреть на геометрию.
Например, можно на плоскости показать, как будет работать сложение двух векторов. Для этого есть два метода: метод треугольника и метод параллелограмма.
Метод треугольника: ставим векторы Х и Y в очередь друг за другом. Для этого берём вектор Х, ставим за ним вектор Y и получаем новый вектор. Новый вектор начинается в хвосте вектора Х и заканчивается на стрелке вектора Y. Этот вектор — результат сложения. Представьте, что это ребёночек двух векторов.
Сложение векторов по методу треугольника: X = (6, 4); Y = (3, −2); Х + Y = (9, 2)
Чтобы воспользоваться методом параллелограмма, нам нужно поставить векторы Х и Y в одну исходную точку. Дальше мы дублируем векторы Х и Y, формируем параллелограмм и получаем новый вектор. В новом векторе соединяем исходную точку с исходной точкой дублирующих векторов — стрелка проходит посередине параллелограмма. Длина нового вектора — это сумма векторов Х и Y.
Сложение по методу параллелограмма и треугольника даёт одинаковый результат. Поэтому выбирайте вариант, который больше подходит под задачу.
Вычитание
Вычитание векторов немного сложнее. Чтобы вычесть векторы, нужно «развернуть» вычитаемый вектор и сложить его с исходным. «Развернуть» — то есть направить в обратную сторону, «перевернув» знаки координат. Получится конструкция вроде такой: Х + (−Y)
Дальше используются правила сложения. Пошагово это выглядит так:
Теперь посмотрим, как выглядит вычитание векторов на графике:
Вычитание векторов по методу треугольника: X = (6, 4); −Y = (−3, 2); X + (−Y) = (3, 6) Вычитание векторов по методу параллелограмма: X = (6, 4); −Y = (−3, 2); X + (−Y) = (3, 6)
Длина вектора
Длина вектора — это одно число, которое измеряется расстоянием от кончика до стрелки вектора. Длину вектора нельзя путать с координатами. Координаты — это несколько чисел, которые указывают на расположение стрелки вектора. По координатам можно определить только конечную точку вектора. Например, если X = (6, 2), то стрелка будет находиться в точке 6 по оси Х. Или другой пример: если Y = (6, 5), то стрелка этого вектора будет находиться в точке 5 по оси Y.
Предположим, нам известны начальные точки векторов X и Y. Пусть это будет точка 2 по оси X и точка 2 по оси Y. Так мы можем легко посчитать длину отрезков:
X = 6 − 2 = 4
Y = 5 − 2 = 3
Иногда приходится рассчитывать длину третьего вектора, который привязан к двум другим векторам. Это легко сделать с помощью теоремы Пифагора — это когда квадрат гипотенузы равен сумме квадратов катетов. В нашем случае катетами будут длины векторов X и Y. Вспоминаем школьную формулу и считаем:
|C|2 = 42 + 32 = 25
|C| = √25 = 5 Длина вектора считается по формуле прямоугольного треугольника. Чтобы было проще представить — перенесите векторы на систему координат
Это формула для двумерного пространства. В трёхмерном пространстве формула похожая: нужно сложить квадраты трёх координат и вычислить квадратный корень из суммы.
В пространстве с большим числом измерений формула выглядит сложнее, но по сути то же: складываем все квадраты координат и получаем квадратный корень из этой суммы.
Умножение и деление вектора на число
Умножение и деление позволяют изменить длину и направление вектора. Если мы умножим вектор Х на три, то увеличим его длину в три раза. Если умножим на минус три — увеличим длину и изменим его направление на противоположное.
Умножение вектора на число
Для деления сохраняются аналогичные правила. Делим вектор Х на три и сокращаем длину в три раза. Делим на минус три — сокращаем и разворачиваем.
Деление вектора на число
Да вроде несложно!
Пока ничего сложного. Но если углубляться, вы узнаете, что:
Что дальше
В следующей статье рассмотрим линейную зависимость векторов. Чтобы не скучать — посмотрите интервью с Анастасией Никулиной. Анастасия сеньор-дата-сайентист в Росбанке и по совместительству блогер с интересной историей.
Vector C++
Вектор является отдельно подключаемой библиотекой. Не удивляйтесь этому если Вы изучали до этого более молодой язык программирования, в котором похожие операции шли «из коробки»
Ветор содержит набор величин одного типа. То есть либо все int либо все string
Размер указывать заранее не нужно. Память будет выделяться по мере необходимости, иначе говоря, динамически.
К каждому элементу вектора легко получить доступ зная его порядковый номер.
Теорию можно изучить, например, в Википедии
#include #include using namespace std; int main() < // 1. create a vector vector int >vec0; cout if (vec0.empty()) < cout >else
1. vector vec0 size is 0 vector vec0 is empty
// 2. create vector with 5 elements each element is 4 vector int > vec(5, 4); cout if (vec.empty()) < cout >else
2. vector vec size is 5 vector vec is not empty
// 3. go through vector elements with a standard loop cout for ( int i = 0; i < cout >cout
// 4. go through vector elements in a shorter way cout for ( auto item : vec) < cout >// 5. add new elements to the end vec.push_back(7); vec.push_back(8); vec.push_back(9); cout // 6. check that they are at the end cout for ( auto item : vec) < cout >// 7. remove elements from the end vec.pop_back(); vec.pop_back(); // 8. check that elements are removed cout for ( auto item : vec) < cout >// 9. copy vector vector int > vec_two(vec); cout // 10. check vec_two content cout for ( auto item : vec_two) < cout >// 11. check if vectors are identical cout if (vec == vec_two) < cout >else < cout >cout return 0; >
После запуска программы результат будет таким:
Задача
Создать вектор целых чисел vi от 0 до 9 и вывести на экран. Вывести на экран размер вектора vi.
#include #include #include using namespace std; int main() < vector vi; for ( int i = 0; i < vi.push_back(i); >for ( auto item : vi) < cout >cout cout int vector vi has » cout return 0; >
Вручную меняем значения нескольких элементов
Выведем изменённый вектор на экран другим способом:
for (unsigned int i = 0; i < cout >cout
Вычислим сколько элементов вектора равны 3. Для вывода вектора на экран воспользуемся новым способом.
Задача
Записать три слова, введённые с клавиатуры в вектор, вывести их на экран, отсортировать по алфавиту, определить сколько в первом слове букв о.
Как Вы можете увидеть слова отсортированы по алфавиту. В названии сайта andreyolegovich две буквы о.
Видео
В видео ниже есть часть того описано в статье кроме.
Характеристики вектора: длина, направление, координаты
У любого вектора есть 2 главные характеристики:
Третья характеристика вектора – это его координаты.
Примечание:
Зная координаты вектора, можно найти его длину и направление. Поэтому, задавать информацию о векторе можно двояко: либо указав его длину и направление, либо его координаты.
Что такое координаты вектора
Координаты вектора – это длины его теней на осях координат (его проекции на оси).
Координаты вектора указывают так:
\( a_
\( a_
Координаты вектора можно получить из координат его начальной и конечной точек:
«координата вектора» = «конец» — «начало»
Пример:
\( A \left( 1;1 \right) \) — начальная точка,
\( B \left( 4;3 \right) \) — конечная точка,
\[ \overrightarrow
\[ \begin
Длина вектора (в чем измеряется, как посчитать)
Длину вектора (его модуль) обозначают так:
Как вычислить длину вектора по его координатам
Когда известны координаты вектора, его длину считают так:
\( a_
Для двухмерного вектора:
Для трехмерного вектора:
Как вычислить длину вектора с помощью рисунка
Если вектор нарисован на клетчатой бумаге, длину считаем так:
1). Если вектор лежит на линиях клеточек тетради:
— считаем количество клеточек.
Зная масштаб клеток, легко получить длину вектора – умножаем масштаб на количество клеток.
2). Если вектор не лежит вдоль линий:
— проводим вертикаль и горизонталь пунктиром.
\( \Delta x \) — горизонталь; \( \Delta y \) — вертикаль;
— затем применяем формулу:
Как указать направление вектора
Указать направление вектора можно с помощью его координат. Так как в его координатах уже содержится информация о длине и направлении вектора.
Бывает так, что координаты вектора неизвестны, а известна только лишь его длина. Тогда направление можно указать с помощью угла между вектором и какой-либо осью.
Для двумерного вектора
Если вектор двумерный, то для указания направления (см. рис. 10) можно использовать один из двух углов:
Словами указать направление вектора можно так:
Такой способ указания координат используют в полярной системе координат.
Для трехмерного вектора
Когда вектор располагается в трехмерном пространстве, чтобы указать, куда вектор направлен, используют два угла.
Такой способ указания координат используют в сферической системе координат.
Считаем Землю шаром. Расположим ее центр в начале трехмерной системы координат – точке (0 ; 0 ; 0).
Тогда координаты любой точки на поверхности планеты можно указать с помощью радиус-вектора этой точки.
Для указания сферических координат принято использовать: