void __hxcpp_deque_push(Dynamic q,Dynamic inVal) { Deque *d = dynamic_cast<Deque *>(q.mPtr); if (!d) throw HX_INVALID_OBJECT; d->PushFront(inVal); }
int main() { Deque<int> deque; deque.PushBack(1); cout << deque.ToString() << endl; deque.PushBack(3); cout << deque.ToString() << endl; deque.PushFront(2); cout << deque.ToString() << endl; deque.PopBack(); cout << deque.ToString() << endl; deque.PopFront(); cout << deque.ToString() << endl; deque.PopFront(); cout << deque.ToString() << endl; }
void main() { Deque* deque = new Deque; for (int i = 0; i < 10; i++) deque->PushBack(i); while (true) { try { cout << deque->PopBack() << " "; } catch (const char* err_text) { cout << err_text << endl; break; } } cout << "------------------" << endl; for (int i = 0; i < 10; i++) deque->PushFront(i); while (true) { try { cout << deque->PopFront() << " "; } catch (const char* err_text) { cout << err_text << endl; break; } } delete deque; }
int main(int argc, char* argv[]) { char op, dir; //op - операция (+/-), dir - направление (</>) size_t num; //Число вагонов для операции (целое) if (argc!=3) //Проверка на аргументы { printf("There is a wrong number of arguments!"); return 1; } FILE* input=fopen(argv[1], "r"); //Файлопроверка if (CheckFile(input)==false) { return 1; } FILE* output=fopen(argv[2], "w"); //Файлопроверка if (CheckFile(output)==false) { fclose(input); return 1; } fscanf(input,"%u", &num); //Считывание первого числа вагонов Deque d; //Инициализация объекта d класса Deque //Конструктор инициализирует начальные данные нового объекта класса d.PushBack(num); //Заполнение массива вагонов первый раз d.PrintResult(output); //Вывод данных в консоль и файл while (fscanf(input, " %c%c%u", &op, &dir, &num)==3) { if (op=='+') //Ветка прицепления вагонов к составу { if(dir=='>') //Прицепить вагоны спереди { d.PushFront(num); } else if (dir=='<') //Прицепить вагоны сзади { d.PushBack(num); } } else if (op == '-') //Ветка отцепления вагонов от состава { if(dir == '<') //Удалить вагоны с конца { if (d.PopBack(num)==false) { printf("Fatal operation:\nYou have negative number of wagons!"); return 1; } } else if (dir == '>') //Удалить вагоны с начала { if (d.PopFront(num)==false) { printf("Fatal operation:\nYou have negative number of wagons!"); return 1; } } } d.PrintResult(output); //Вывод в файловый поток output и в консоль } fclose(input); fclose(output); return 0; //Программа вызывает деструктор }