Я хотел бы сделать что-то вроде этого (я знаю, что это не скомпилируется):
struct Container{
vector<int> storage;
};
float foo(Container* aContainer){
if(aContainer!=NULL)
vector<int>& workingStorage=aContainer->storage;
else
vector<int> workingStorage;
workingStorage.reserve(1000000);
....use workingStorage to calculate something......
return calculated_result;
}
Итак, если я передаю контейнер функции, я хочу, чтобы функция использовалавектор в контейнере для работы вместо локальной переменной.Если контейнер не предоставлен, он должен использовать локальную переменную.
Конечно, я мог бы просто в конце функции скопировать локальную переменную в хранилище Контейнера, но это не то, что я хочу сделать.
Спасибо!