0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
||||||
1 | ||||||
Сложение элементов двух векторов с записью в третий30.03.2014, 00:01. Показов 4718. Ответов 23
Метки нет (Все метки)
Есть код функции (не дописанная), которая получает в качестве аргументов 2 вектора произвольных типов:
Вопрос: как изменить функцию, чтоб она возвращала указатель на результирующий вектор. Заранее спасибо.
0
|
30.03.2014, 00:01 | |
Ответы с готовыми решениями:
23
Сложение двух векторов и запись результата в третий вектор Слияние двух векторов в третий по условию Функции: умножение вектора на число и поэлементное сложение двух векторов одинакового размера Сложение первого и второго элементов массива и записать результат в третий |
90 / 90 / 48
Регистрация: 07.12.2011
Сообщений: 215
|
||||||
30.03.2014, 00:14 | 2 | |||||
Написать прототип можно
0
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
|
30.03.2014, 00:18 [ТС] | 3 |
Я ещё не дошёл до typename да и в итераторах толком не разобрался, не могли бы вы написать пример кода, каким он должен быть, что бы данная функция работала по предназначению?
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
||||||
30.03.2014, 00:21 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
|
30.03.2014, 00:36 [ТС] | 5 |
А как, к примеру, вызвать эту функцию, а то у меня пока что с трудом выходит?
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
||||||||||||||||
30.03.2014, 00:52 | 6 | |||||||||||||||
Прошу прощения, в моём коде была допущена ошибка, вместо строки:
доступа к самому объекту вектора. Пример вызова этой функции может выглядеть следующим образом:
1
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
|||||||||||
30.03.2014, 01:04 [ТС] | 7 | ||||||||||
Сделал такой вариант, но он всё равно не работает:
Добавлено через 23 секунды Извините, но у меня похоже и эта версия не работает. Программа просто ничего не делает, как будто функция даже и не вызывается. Добавлено через 40 секунд
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|||||||||||||||||||||
30.03.2014, 01:19 | 8 | ||||||||||||||||||||
Опишите конкретно, что именно "не работает" в вашем собственном примере - какие симптомы, и кроме того - опишите каким образом вы пытаетесь оценить работоспособность моей версии? В частности пробывали ли вы вызывать функцию передав вектора разной длины (по крайней мере у меня этот вариант успешно ругнулся сообщением в консоль).
1
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
|||||||||||||||||||||||||||||||
30.03.2014, 01:36 [ТС] | 9 | ||||||||||||||||||||||||||||||
Благодарю за столь исчерпывающий ответ. Проблема в том, что при вызове вашего варианта функции:
Благодарю за столь исчерпывающий ответ. Проблема в том, что при вызове вашего варианта функции:
Благодарю за помощь. Добавлено через 5 минут И ещё 1 вопрос: разве не нужно освобождать память при использовании "голого" new?
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
30.03.2014, 01:45 | 10 | |||||
Сообщение было отмечено go как решение
Решение
1
|
18833 / 9835 / 2404
Регистрация: 30.01.2014
Сообщений: 17,273
|
|
30.03.2014, 01:45 | 11 |
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|
30.03.2014, 01:47 | 12 |
Я написал тест и попробовал его запустить онлайн компилятором, ссылка прилагается:
http://ideone.com/8E1ieM
1
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
|
30.03.2014, 01:47 [ТС] | 13 |
Тогда там допущена ошибка, я прав?
0
|
18833 / 9835 / 2404
Регистрация: 30.01.2014
Сообщений: 17,273
|
|
30.03.2014, 01:49 | 14 |
1
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|
30.03.2014, 01:50 | 15 |
Безусловно память выделенная под объекты (с помощью оператора new) в куче (heap) - требует прямого управления программистом, после использования объекта необходимо вызвать delete передав адрес объекта в памяти. Попробуйте посмотреть на тот код, ссылку на который я дал выше - по крайней мере этот онлайн компилятор не выдает никаких сообщений об ошибках, и, на сколько я могу судить, ход выполнения соответствует поставленной задаче.
1
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
|||||||||||||||||||||
30.03.2014, 01:56 [ТС] | 16 | ||||||||||||||||||||
Тут
Melg, Нашёл ошибку в коде. Вместо
0
|
18833 / 9835 / 2404
Регистрация: 30.01.2014
Сообщений: 17,273
|
||||||
30.03.2014, 01:59 | 17 | |||||
В дополнение к сказанному, можно еще применить вот такой подход (заодно избежать проблем с освобождением памяти):
1
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
||||||
30.03.2014, 01:59 | 18 | |||||
В перменную addition_result_vector будет записан адрес по которому находится объект. Время жизни этого объекта не зависит от места где он был создан, но программист должен самостоятельно решить когда этот объект больше не нужен, и передав указатель на область памяти где находится объект - вызвать оператор delete
2
|
18833 / 9835 / 2404
Регистрация: 30.01.2014
Сообщений: 17,273
|
|
30.03.2014, 02:01 | 19 |
Да. Мы сами решаем, когда вызвать delete. А до тех пор можно пользоваться объектом.
1
|
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 26
|
||||||
30.03.2014, 02:03 [ТС] | 20 | |||||
Melg, А разве созданный указатель
0
|
30.03.2014, 02:03 | |
30.03.2014, 02:03 | |
Помогаю со студенческими работами здесь
20
Сложение первого и второго элементов массива и записать результат в третий Как из двух однонаправленных списков создать третий, который состоит из нечетных элементов предыдущих двух? Сложение двух элементов Создать третий массив из элементов двух данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |