Avoid Returning Containers by Value

Avoid Returning Containers by Value

While the overhead of returning an ordinary object by value may be acceptable in most cases, returning a container by value is much more expensive in terms of performance. For example:

           vector  f(int n)   {    vector  vi(n);    return vi; //extremely inefficient   }

Remember that when you return an object by value from a function, the object copy-constructs itself on the stack. The process of copy-constructing a container consists of copy-constructing its elements one by one


Share the Post: