특정 크기의 배열을 만든 다음 해당 배열을 하나씩 확장하는 프로그램을 만들려고합니다. 또한 함수 호출 전에 첫 번째 배열을 표시하고 함수 호출 후에 새 배열을 표시해야합니다.오버로드없이 표준 정수 배열이나 고유 한 포인터 배열을 사용하는 함수를 만드는 방법은 무엇입니까?
#include <iostream>
#include <memory>
using namespace std;
unique_ptr<int[]> newCopy(int arry[], int items)
{
unique_ptr<int[]> p(new int[items + 1]);
p[0] = 0;
for (int i = 0; i < items; i++)
{
p[i + 1] = arry[i];
}
return p;
}
void displayArry(int arry[], int items)
{
for (int i = 0; i < items; i++)
{
cout << arry[i] << " ";
}
cout << endl;
}
int main()
{
const int SIZE = 5;
int myNumbers[SIZE] = {18, 27, 3, 14, 95};
displayArry(myNumbers, SIZE);
unique_ptr<int[]> newArry = newCopy(myNumbers, SIZE);
//displayArry(newArry, SIZE + 1);
for (int i = 0; i < SIZE+1; i++)
{
cout << newArry[i] << " ";
}
return 0;
}
난 기능을 오버로드하지 않고도 정상 정수 배열 스마트 포인터 배열을 모두 표시하는 표시 기능 싶다.
디스플레이 기능은 주로 표준 정수 배열에만 적용됩니다. main 함수 내부에서 for 루프를 사용하면 확장 함수가 작동하고 새로운 고유 포인터 배열이 올바른 값을 표시하지만 표시 함수에서 둘 다 사용하는 방법을 파악할 수 없습니다.