명품C++프로그래밍

명품 C++ Programming 실습문제 10장 3번

anycoding 2021. 6. 6. 20:31
반응형

문제

배열의 원소를 반대 순서로 뒤집는 reverseArray() 함수를 템플릿으로 작성하라.

reverseArray()의 첫 번째 매개 변수는 배열에 대한 포인터이며 두 번째 매개 변수는 배열의 개수이다. reverseArray()의 호출 사례는 다음과 같다.

 

메인함수

int x[] = { 1,10,100,5,4 };
	reverseArray(x, 5);
	for (int i = 0; i < 5; i++)	cout << x[i] << ' '; // 4 5 100 10 1 이 출력된다.

 

소스코드

#include<iostream>
using namespace std;
template<class T>
void reverseArray(T x[], T n) {
	for (int i = 0, j = n - 1; i < n/2; i++, j--)
	{
		T tmp = x[i];
		x[i] = x[j];
		x[j] = tmp;
	}
}

int main() {
	int x[] = { 1,10,100,5,4 };
	reverseArray(x, 5);
	for (int i = 0; i < 5; i++)	cout << x[i] << ' '; // 4 5 100 10 1 이 출력된다.
}
반응형