std::dedup
, чтобы не было путаницы и неоправданных ожиданий. Как вы знаете в си нету понятия строка
std::array
и std::vector
). Либо просто указатели и создавать массивы с размером "с запасом", как делаете вы.у них максимальный размер 10. для результирующего я указал размер максимальный 20, а реальный X = N + M
const int N = 3;
const int M = 5;
std::array<int, N> = {1, 2, 3};
std::array<int, M> = {1, 2, 3, 4, 5};
std::array<int, N+M> operator<<(const std::array<int, N> &one, const std::array<int, M> &two) {
// магия
return result;
}
std::array<int, N+M> operator<<(const std::array<int, M> &one, const std::array<int, N> &two) {
return operator<<(two, one); // вызов первой перегрузки
}
int
, то можете убрать первую, а во второй все T
заменить на int
.std::vector
(что суть - динамический массив), то почитать о нем можно здесь. я только знаю что озвученные требования даже для мидла завышены.