C++ Programming Ch.10 Exercise 5 Solution

Problem: 다음 함수는 매개 변수로 주어진 두 개의 int 배열을 연결한 새로운 int 배열을 동적 할당받아 리턴한다. 1 int * concat(int a[], int sizea, int b[], int sizeb); concat가 int 배열뿐 아니라 다른 타입의 배열도 처리할 수 있도록 일반화하라. Execution Result: Objective & Hints: 함수의 힐반화에 대한 이해, 템플릿 함수 만들기 Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; template T* concat(T a[], int sizea, T b[], int sizeb){ T *rArray = new T[sizea + sizeb]; // return 할 배열을 동적생성 for(int i=0; i<sizea+sizeb; i++){ if(i<sizea) rArray[i] = a[i]; else rArray[i] = b[i-sizea]; } return rArray; } int main() { int x[] = { 1, 10, 100, 5, 4 }; int y[] = { 7, 6, 10, 9 }; int *a = concat(x, 5, y, 4); int aSize = sizeof(x)/sizeof(x[0]) + sizeof(y)/sizeof(y[0]); // a에 들어있는 원소의 개수 for (int i = 0; i<aSize; i++) cout << a[i] << ' '; }

March 9, 2020 · 1 min · Sobamemil

C++ Programming Ch.10 Exercise 4 Solution

Problem: 배열에서 원소를 검색하는 search() 함수를 템플릿으로 작성하라. search()의 첫 번째 매개 변수는 검색하고자 하는 원소 값이고, 두 번째 매개 변수는 배열이며, 세 번째 매개 변수는 배열의 개수이다. search() 함수가 검색에 성공하면 true를, 아니면 false를 리턴한다. search()의 호출 사례는 다음과 같다. 1 2 3 int x[] = {1, 10, 100, 5, 4}; if(search(100, x, 5)) cout << "100이 배열 x에 포함되어 있다"; // 이 cout 실행 else cout << "100이 배열 x에 포함되어 있지 않다"; Execution Result: ...

March 9, 2020 · 1 min · Sobamemil

C++ Programming Ch.10 Exercise 2 Solution

Problem: 두 개의 배열을 비교하여 같으면 true를, 아니면 false를 리턴하는 제네릭 함수 equalArrays()를 작성하라. 또한 main() 함수를 작성하여 equalArrays()를 호출하는 몇 가지 사례를 보여라. equalArrays()를 호출하는 코드 사례는 다음과 같다. 1 2 3 4 5 6 int x[] = {1, 10, 100, 5, 4}; int y[] = {1, 10, 100, 5, 4}; if(equalArray(x, y, 5)) cout << "같다"; // 배열 x, y가 같으므로 "같다" 출력 else cout << "다르다"; Execution Result: ...

March 9, 2020 · 1 min · Sobamemil