Мне нужно отобразить мой вектор, который был отсортирован с использованием алгоритма сортировки слиянием. Однако мой друг использовал v.data (), чтобы передать вектор, в то время как я использовал v.begin (). Его код работает отлично, а мой - нет. Пожалуйста, объясните.
Я уже пытался передать v [0] и v.begin (). Не работает
void merge_sort(int *a, int i, int j);
void merge_sort(int *a, int i, int j)
{
int mid;
if (i < j) {
mid = (i + j) / 2;
merge_sort(a, i, mid); // left recursion
merge_sort(a, mid + 1, j); // right recursion
merge(a, i, mid, mid + 1, j);
}
}
int main()
{
int num;
cout << "Enter array length (n) = ";
cin >> num;
vector<int> a(num);
cout << "Enter the number:" << endl;
for (int i = 0; i < num; i++)
cin >> a[i];
merge_sort(a.data(), 0, num - 1);
cout << "\nSorted array :\n";
for (int i = 0; i < num; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
v.begin () и v [0] показывает ошибки, в то время как v.data () работает отлично.