#include <iostream>
#define M 6
#define N 5
template <class T>
T *merge(T *a, T *b) {
T *c = new int[N+M];
for (int i=0, j=0, k=0; k<N+M; k++)
if (j>=M || (i<N && a[i] < b[j])) c[k] = a[i++];
else c[k] = b[j++];
return c;
}
int main() {
int a[N] = {3, 2, 5, 11, 7};
char b[M] = {'i', 's', 'b', 'y', 'o', 'p'};
int *c = merge(a, b);
for (int i=0; i<N+M; i++)
std::cout << c[i] << std::endl;
}
Когда я компилирую код, он дает мне «sort.cpp: 18: ошибка: нет подходящей функции для вызова«слияния (интермедиат [5], символ [6]) «». Может кто-нибудь объяснить, что я сделал неправильно? Спасибо.Пытаясь научиться использовать шаблону
Использовать константы не макросы. –