본문 바로가기

하루코딩/C++ 하루코딩

[C++] 동적으로 배열 할당 후 입력하기

728x90
반응형

이것은 해답 예시일뿐 정답은 이것만 있는 것이 아닙니다.

구조체로도 해보시고 함수로만으로도 해보시고 클래스를 다른 방식으로 사용해 보시길 바랍니다.

#include <iostream>

using namespace std;
class Array{
private:
	int *arr;
    int size;
    int capacity;
    //배열 확장
    void Expand_Array(){
    	capacity += 2;
        int *new_arr = new int[capacity];
        for(int i = 0; i < size ; i++){
        	new_arr[i] = arr[i];
        }
        delete[] arr;
        arr = new_arr;
    }
public:
	Array(int _capacity){
    	capacity = _capacity;
        size = capacity;
        arr = new int[capacity];
        cout << "배열의 크기를" << capacity << "로 초기화 했습니다. \n" << endl;
        for(int i = 0; i < size; i++){
        	arr[i] = 0;
        }
        
    void Curent_Array() {
    	cout << "현재 배열 : ";
        for(int i = 0; i < size; i++){
        	cout << arr[i] << " ";
        }
        cout << endl;
    }
    void Add_Array(int value) {
    	if(size == capacity){
        	Expand_Array();
        }
        arr[size++] = value;
        cout << "요소 " << value << "를 배열에 추가했습니다." << endl;
    }
    
    void del_Array(){
    	if(size > 0){
        	int remove_element = arr[--size];
            cout << "배열에서 마지막 요소 " << remove_element << "를 삭제했습니다." << endl;
        }
        else{
        	cout << "배열이 비어 있습니다." << endl;
        }
    }
    ~Array(){
    	delete[] arr;
        cout << "배열 메모리가 해제되었습니다." << endl;
    }
}

int main() {
	int capacity;
	cout << "초기 배열 크기를 입력하세요 : ";
	cin >> capacity;

	Array arr(capacity);

	cout << "1 : 현재 배열 출력" << endl;
	cout << "2 : 배열에 요소 추가" << endl;
	cout << "3 : 배열의 마지막 요소 삭제" << endl;
	cout << "0 : 종료" << endl;

	int choice = 1;
	while (choice > 0)
	{
		cout << "명령을 입력 하세요 : ";
		cin >> choice;
		switch (choice)
		{
		case 1:
			arr.Curent_Array();
			break;
		case 2:
			int value;
			cout << "추가할 값을 입력하세요 : ";
			cin >> value;
			arr.Add_Array(value);
			break;
		case 3:
			arr.del_Array();
			break;
		case 0:
			break;
		default:
			break;
		}
	}
	return 0;
}
반응형

'하루코딩 > C++ 하루코딩' 카테고리의 다른 글

[C++] 문자열 포인터 사용해보기  (0) 2025.03.13
[C++] 게임 캐릭터 생성 및 조작  (1) 2025.02.12
[C++] 붕어빵 만들기  (0) 2025.02.11
C++ 구조체 과제  (0) 2025.01.23
C++ 문자열 판별  (0) 2025.01.22