Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
1 | |
Функция, возвращающая vector07.02.2014, 22:36. Показов 1662. Ответов 4
Метки нет (Все метки)
Решил реализовать шарповскую String.Split().
Она должна возвращать vector<string>, следовательно либо для него надо выделять место в куче, что нежелательно, либо возвращать по значению. Слишком ли большой будет потеря по времени в последнем случае из-за копирования или это дело как-то оптимизируется?
0
|
07.02.2014, 22:36 | |
Ответы с готовыми решениями:
4
Функция возвращающая абсолютное разницу первого и второго параметров и функция типа int, возвращающая минимальное из трех целых чисел Не работает функция sort (vector, vector) Функция, возвращающая указатель Функция, возвращающая константу |
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
07.02.2014, 22:42 | 2 |
Сообщение было отмечено Бендерродригез как решение
Решение
если новый стандарт - то потери минимальны.
вектор должен замувится. но можно и помочь компилятору если параннойя: return std::move(splitResult); в старом стандарте обычно в таких случаях построенный вектор в функцию по ссылке передают, где он и заполняется. динамически еще раз копию создавать - это какой-то ненужный оверхед.
1
|
Сгибальщик
42 / 42 / 4
Регистрация: 18.05.2013
Сообщений: 220
|
|
07.02.2014, 22:48 [ТС] | 3 |
Я ещё не дошёл до этого.
VS2013 это поддерживает и нужны ли какие-то особые настройки? Добавлено через 5 минут Да тут дело просто в синтаксисе. Всё-таки, функция, возвращающая и изменяющая параметр - это немного разные стили.
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
07.02.2014, 22:49 | 4 |
Сообщение было отмечено Бендерродригез как решение
Решение
верните вектор с импользованием std::move
если скомпиляется - то ничего не надо. std::move ввели в новом стандарте. 12 студия это умеет, 13 стало быть тоже должна без доп настроек.
0
|
292 / 172 / 47
Регистрация: 22.03.2010
Сообщений: 488
|
|
07.02.2014, 22:53 | 5 |
Даже при использовании компиляторов, которые на поддерживают C++11, обычно можно рассчитывать на оптимизацию NRVO, благодаря которой не должно возникнуть проблем с производительностью.
0
|
07.02.2014, 22:53 | |
07.02.2014, 22:53 | |
Помогаю со студенческими работами здесь
5
Функция, возвращающая значение Функция возвращающая значение Функция возвращающая ссылку Функция, возвращающая указатель Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |