Ссылки C ++ и возвращаемые значения

Я понимаю, что основная цель ссылок - избегать копирования больших структур, но что, если функция, которую вы пишете, сама создает большую структуру? Менее эффективно (или у вас, скорее всего, закончится память) создать переменную локально, а затем вернуть ее, чем передать целевой объект в качестве ссылки и заполнить его из функции?

I Кажется, это не так хорошо сформулировано, поэтому конкретный пример: предположим, что функция принимает строку и возвращает вектор каждой строки в строке. Есть ли материальное преимущество функции:

void getLines(std::string in, std::vector<std::string>& out);

перед:

std::vector<std::string> getLines(std::string in);

Спасибо за любую помощь, Итак, конкретный пример: предположим, что функция принимает строку и возвращает вектор каждой строки в строке. Есть ли материальное преимущество функции:

void getLines(std::string in, std::vector<std::string>& out);

перед:

std::vector<std::string> getLines(std::string in);

Спасибо за любую помощь, Итак, конкретный пример: предположим, что функция принимает строку и возвращает вектор каждой строки в строке. Есть ли материальное преимущество функции:

void getLines(std::string in, std::vector<std::string>& out);

перед:

std::vector<std::string> getLines(std::string in);

Спасибо за любую помощь, Wyatt

6
задан Alexandre C. 12 December 2010 в 12:11
поделиться