Чтобы загрузить данные в массив, используйте std::vector<int>
для создания экземпляра переменной и std::vector<int>&
, чтобы позволить функции редактировать ее.int data[]
принимает копию входной переменной, а не саму переменную - поэтому редактировать ее бессмысленно.
void fun(int a[])
{
a[0]=1;
a[1]=2;
}
int main()
{
int a[2] = {5,7};
fun(a);
cout<<a[0] << a[1];
return 0;
}
Этот код печатает 57
, поскольку fun
ничего не меняет.В то время как следующий код напечатает 12
:
void fun(vector<int>& a)
{
a[0]=1;
a[1]=2;
}
int main()
{
vector<int> a = {5,7};
fun(a);
cout<<a[0] << a[1];
return 0;
}
Добавление & к входу fun
заставляет его получить саму переменную, а не ее копию.В то время как вектор позволяет динамически изменять размер контейнера, что в целом чрезвычайно полезно.