Можно ли вычесть из вектора вектор?
я не знаю, не понимаю просто как реализовать данное задание. Разработайте законченную программу, в которой с помощью подходящих конструкторов создайте три вектора v1, v2, v3 с элементами целого типа, размерами соответственно 5, 7, 6 и одинаковыми значениями элементов соответственно 1, 2, 3. Выведите на экран размеры векторов, значения их элементов и выполните присваивание v3=v2-v1. После этого вновь выведите на экран размеры векторов и значения их элементов. Может там вместо — должно быть =, или можно все таки реализовать вычитание?
// laba9.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) < setlocale (LC_ALL, "russian"); vectorv1(5,1), v2(7,2), v3(6,3); cout
Помогите пожалуйста, натолкните на мысль, спасибо.
Отслеживать
задан 6 мая 2018 в 23:27
Gomer Simpson Gomer Simpson
43 6 6 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Садимся и пишем свой собственный оператор, типа
vector operator-(const vector&a, const vector&b) < if (a.size() != b.size()) throw("a.size() != b.size()"); // Или как-то иначе обработать разные размеры vectorc(a.size()); for(size_t i = 0; i
Все. Осталось применить :)
Отслеживать
ответ дан 7 мая 2018 в 3:26
219k 15 15 золотых знаков 119 119 серебряных знаков 230 230 бронзовых знаков
- c++
- stl
- vector
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как сложить вектора?
Допустим, есть
vector a
vector b
Нужно к каждому значению a прибавить значение b
Можно, конечно, пустить цикл. А есть ли какая-нибудь функция STL библиотеки для упрощения этого дела и для большей наглядности?
4 ответа
24 марта 2007 года
1.1K / / 19.09.2006
Нужно переопределить глобальный оператор + для векторов.
template
SumVector Result;
int Max_Size = (First.size() >= Other.size()) ? First.size() : Other.size();
Result.resize (Max_Size);
for (int i = First.size(); i >=0 ;i--)
Result = First.;
for (int i = Other.size(); i >=0 ;i--)
Result += Other ;
return Result;
>
>;
Для класса DynamicArray работает
24 марта 2007 года
48 / / 30.07.2006
Спасибо. А можно поподробнее, куда запихнуть надо переопределение оператора?
И еще заодно 1 вопрос.
for( int i = mTestColors.size(); --i >= 0; )
на эту строчку компиллятор дает warning:
warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
Можно как-нибудь поставить в опциях, чтобы таких вот сообщений при компилляции я не получал?
26 марта 2007 года
18 / / 03.09.2006
typedef unsigned int size_t
Что бы не появлялось варнинга нужно сделать
for (int i = (int) mTestColors.size (); --i >= 0; )
// anycode
>
если честно невкупаю зачем при таком условии использовать for, помоемому будет нагляднее
int i = (int) mTestColors.size ();
while (-- i)
// anycode
>
26 марта 2007 года
4.8K / / 20.01.2000
IMHO, переопределять оператор + в данном случае - логически неверно, т.к. лично я предполагал бы в данном случае, что изменится (увеличится) сам вектор, а не его содержимое.
Поэтому я бы просто сделал функцию, назвал бы её elemByElemAddition или appendElemByElem. Сделал бы её универсальной для стандартных контейнеров? Где в цикле через итератор перебрал бы значения.
Сложение и вычитание векторов
Сложение векторов (сумма векторов) a + b есть операция вычисления вектора c , все элементы которого равны попарной сумме соответствующих элементов векторов a и b , то есть каждый элемент вектора c равен:
сi = ai + bi
Определение.
Вычитание векторов (разность векторов) a - b есть операция вычисления вектора c , все элементы которого равны попарной разности соответствующих элементов векторов a и b , то есть каждый элемент вектора c равен:
сi = ai - bi
Формулы сложения и вычитания векторов
Формулы сложения и вычитания векторов для плоских задач
В случае плоской задачи сумму и разность векторов a = < ax ; ay > и b = < bx ; by > можно найти, воспользовавшись следующими формулами:
Формулы сложения и вычитания векторов для пространчтвенных задач
В случае пространственной задачи сумму и разность векторов a = < ax ; ay ; az > и b = < bx ; by ; bz > можно найти, воспользовавшись следующими формулами:
Формулы сложения и вычитания n -мерных векторов
В случае n -мерного пространства сумму и разность векторов a = < a 1 ; a 2 ; . ; an > и b = < b 1 ; b 2 ; . ; bn > можно найти, воспользовавшись следующими формулами:
Примеры задач на сложение и вычитание векторов
Примеры плоских задач на сложение и вычитание векторов
Пример 1. Найти сумму векторов a = <1; 2>и b = .1;>
Пример 2. Найти разность векторов a = <1; 2>и b = .1;>
Примеры пространственных задач на сложение и вычитание векторов
Пример 3. Найти сумму векторов a = <1; 2; 5>и b = .1;>
Пример 4. Найти разность векторов a = <1; 2; 5>и b = .1;>
Примеры задач на сложение и вычитание векторов с размерностью большей 3
Пример 5. Найти сумму векторов a = <1; 2; 5; 9>и b = .1;>
Пример 6. Найти разность векторов a = <1; 2; 5; -1; 5>и b = .1;>
Любые нецензурные комментарии будут удалены, а их авторы занесены в черный список!
Присоединяйтесь
© 2011-2024 Довжик Михаил
Копирование материалов запрещено.
Добро пожаловать на OnlineMSchool.
Меня зовут Довжик Михаил Викторович. Я владелец и автор этого сайта, мною написан весь теоретический материал, а также разработаны онлайн упражнения и калькуляторы, которыми Вы можете воспользоваться для изучения математики.
Если Вы хотите связаться со мной, имеете вопросы, предложения или хотите помочь развивать сайт OnlineMSchool пишите мне support@onlinemschool.com
1. Сложение и вычитание векторов. Умножение вектора на число
От конца вектора a → откладываем вектор, равный b → . Соединяем начало первого вектора и конец второго. Получившийся вектор, начало которого совпадает с началом вектора a → , а конец — с концом вектора b → , называется суммой этих векторов.

Ваш браузер не поддерживает HTML5 видео
Правило параллелограмма
Векторы откладываются от одной точки. Достраивается параллелограмм со сторонами, параллельными данным векторам. Диагональ получившегося параллелограмма, идущая из их общего начала в противоположную вершину, является суммой исходных векторов.

Ваш браузер не поддерживает HTML5 видео
При сложении векторов выполняется переместительный закон, т. е. a → + b → = b → + a → ,
и сочетательный закон, т. е. ( a → + b → ) + c → = a → + ( b → + c → ) .
Два ненулевых вектора называются противоположными, если они равны по длине и противоположно направлены. Например, векторы AB → и BA → противоположны.
Разностью двух векторов a → и b → называется такой вектор c → , сумма которого с вектором b → равна вектору a → .
Т. е. в этом случае следует сложить вектор a → с вектором, противоположным вектору b → .
Построить вектор разности можно двумя способами, первый из которых проиллюстрирован ниже.

Ваш браузер не поддерживает HTML5 видео
Для нахождения разности векторов вторым способом можно воспользоваться формулой: a → − b → = a → + ( − b → ) .

Ваш браузер не поддерживает HTML5 видео
Даже если векторов больше, чем два, складывают их по тому же принципу — переносят так, чтобы началo каждого следующего совпало с концом предыдущего. Тогда вектор, соединяющий начало и конец такой ломаной, и будет суммой всех этих векторов.
Это правило называется «правилом многоугольника».

Ваш браузер не поддерживает HTML5 видео
Умножение вектора на число
Произведением вектора a → на число \(k\) называется такой вектор b → , длина которого равна k ⋅ a → , причём векторы сонаправлены, если \(k>0\), и противоположно направлены, если \(k