Я хочу создать метод, который перегружает метод additem (), который может добавить элемент перед списком(в расположении array [0] )
Верен ли мой код? потому что у меня есть выходной номер ноль в конце...на самом деле он должен быть перед списком...надеюсь, вы сможете мне помочь
Что я уже пробовал:
//Список.ч
#ifndef LIST_H #define LIST_H const int maxSize = 100; class List { public: List(); ~List(); int numberOfItem(); void addItem(int item,int position); void printItem(); private: int size; int array[maxSize]; }; #endif
//List.cpp
#include <iostream> using namespace std; #include "List.h" List::List() { size = 0; } List::~List() {} int List::numberOfItem() { return size; } void List::addItem(int item, int position) { if (size == maxSize) { cout << "**There is no more place left***\n"; return; } if (position<0 || position>size) { cout << "invalid position\n"; return; } for (int i = size - 1; i >= position - 1; i--) array[i+1]=array[i]; array[position-1] = item; size++; } void List::printItem() { for (int i = 0; i < size; i++) cout << array[i] << " "; cout << "\n"; }
//ListMain.cpp
#include <iostream> using namespace std; #include "List.h" void main() { int item, position; List ItemList; if (ItemList.numberOfItem() == 0) cout << "there are no elements in this list" << endl; for (int i = 0; i < 10; i++) ItemList.addItem(i*2,i); cout << "the forming of list after addition operation: "<<endl; ItemList.printItem(); cout << "enter number to be added in the list: "; cin >> item; cout << "enter position of the number: "; cin >> position; ItemList.addItem(item, position); cout << "the new list are: "; ItemList.printItem(); }
Richard MacCutchan
То for
петля в вашем addItem
метод выглядит немного странно. Что происходит, когда размер и положение равны нулю?