Если у меня есть функция, которая возвращает контейнер STL, я получаю копию всего содержимого стандартного контейнера?
Например, это:
void Foo( std::vector< std::string >* string_list );
лучше, чем это:
std::vector< std::string > Foo();
Имеет ли значение, что находится в контейнере?Например, возврат контейнера, подобного этому:
struct buzz {
int a;
char b;
float c;
}
std::map< int, buzz > Foo();
будет более дорогостоящей операцией, чем эта:
std::map< int, int > Foo();
Спасибо, PaulH
Редактировать: Это с C ++ 03.Решение C ++ 0x, к сожалению, неприемлемо.
Edit2: Я использую компилятор Microsoft Visual Studio 2008.