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 |