반응형
문제
다음 함수는 매개 변수로 주어진 두 개의 int 배열을 연결한 새로운 int 배열을 동적 할당 받아 리턴한다.
int* concat(int a[], int sizea, int b[], int sizeb);
concat가 int 배열뿐 아니라 다른 타입의 배열도 처리할 수 있도록 일반화하라.
소스코드
#include<iostream>
using namespace std;
template <class T>
T* concat(T a[], T sizea, T b[], T sizeb) {
T* z = new T[sizea + sizeb];
for (int i = 0; i < sizea+sizeb; i++)
{
if (i < sizea)
z[i] = a[i];
else
z[i] = b[i-sizea];
}
return z;
}
int main() {
int x[] = { 1, 10, 100, 5, 4 };
int y[] = { 2, 20, 200, 10, 8 };
int* a = concat(x, 5, y, 5);
for (int i = 0; i < 10; i++)
cout << a[i] << ' ';
delete [] a;
}
반응형
'명품C++프로그래밍' 카테고리의 다른 글
명품 C++ Programming 실습문제 10장 7번 (0) | 2021.06.06 |
---|---|
명품 C++ Programming 실습문제 10장 6번 (0) | 2021.06.06 |
명품 C++ Programming 실습문제 10장 4번 (0) | 2021.06.06 |
명품 C++ Programming 실습문제 10장 3번 (0) | 2021.06.06 |
명품 C++ Programming 실습문제 10장 2번 (0) | 2021.06.06 |