вернуть вектор vs использовать параметр для вектора, чтобы вернуть его

В приведенном ниже коде возникает вопрос:

Если вы используете функцию «returnIntVector ()», копируется ли вектор из локального во «внешний» "(глобальный) объем?" Другими словами, это вариант, требующий больше времени и памяти по сравнению с функцией getIntVector ()? (Однако с той же функциональностью.)

#include <iostream>
#include <vector>
using namespace std;

vector<int> returnIntVector()
{
   vector<int> vecInts(10);
   for(unsigned int ui = 0; ui < vecInts.size(); ui++)
      vecInts[ui] = ui;

   return vecInts;
}

void getIntVector(vector<int> &vecInts)
{
   for(unsigned int ui = 0; ui < vecInts.size(); ui++)
      vecInts[ui] = ui;
}

int main()
{
   vector<int> vecInts = returnIntVector();
   for(unsigned int ui = 0; ui < vecInts.size(); ui++)
      cout << vecInts[ui] << endl;
   cout << endl;

   vector<int> vecInts2(10);
   getIntVector(vecInts2);
   for(unsigned int ui = 0; ui < vecInts2.size(); ui++)
      cout << vecInts2[ui] << endl;

   return 0;
}
15
задан AudioDroid 23 August 2011 в 14:53
поделиться