Как вернуть массив, который является результатом перегрузки?
Есть задача:
перегрузить побитовый сдвиг влево так, чтобы он создавал из двух одномерных массивов один одномерный упорядоченный по возрастанию массив. Вопрос собственно про перегрузку — надо передать два массива, два значения длины этих массивов, а на выходе получить один массив.
И как я понимаю по итогу в main должно быть примерно следующее T = A[N] << B[M];
Александр Рыбаков, первые две строчки позволяют использовать функцию для любых типов данных, хранящихся в векторах. Если вам достаточно int, то можете убрать первую, а во второй все T заменить на int.
Если вы еще не знакомы с типом std::vector (что суть - динамический массив), то почитать о нем можно здесь.
Толстый Лорри, мне как раз нужно без динамического массива. первые два массива размером N и M в main. у них максимальный размер 10. для результирующего я указал размер максимальный 20, а реальный X = N + M
Можно написать и проще, вообще без глобальных констант и чтобы не требовалась вторая перегрузка, но с шаблонами вы еще не знакомы.
Проблема в том, что сырые массивы сами по себе нельзя передавать и возвращать из функций. Можно передавать и возвращать указатели на них и отдельно их размер (как это делают std::array и std::vector). Либо просто указатели и создавать массивы с размером "с запасом", как делаете вы.
Для статических массивов их размеры так же должны вычисляться статически. Иначе это динамические массивы (даже если память выделена в стэке).