Мне нужно использовать векторный массив в рекурсивной функции.Должен ли я объявить этот вектор как постоянный глобально или напрямую передать его из главной функции в c ++?Какой подход рекомендуется?Первый подход потребляет меньше памяти, чем второй?В каждом рекурсивном вызове создается отдельная копия векторного массива?
Я не хочу изменять массив.Я просто хочу получить доступ ко всем элементам массива в каждом рекурсивном вызове.Может кто-нибудь сказать мне разницу между двумя подходами в отношении памяти и времени?
1-й подход
const vector<int> array = {1,2,3,4,5};
void fun(int index)
{
// some ending condition
// only access array(no modification)
// recusive call
fun(index+1);
}
int main()
{
fun(a,0);
return 0;
}
2-й подход
void fun(vector<int> &array,int index)
{
// some ending condition
// only access array(no modification)
// recusive call
fun(array,index+1);
}
int main()
{
vector<int> a = {1,2,3,4,5};
fun(a,0);
return 0;
}