Форум программистов, компьютерный форум CyberForum.ru

Реализация стека FIFO и LIFO - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в программе обработки строк http://www.cyberforum.ru/cpp-beginners/thread326404.html
Доброго вечера! Подскажите, пожалуйста, из-за чего ошибка. Есть задача: написать функцию, входными параметрами которой является указатель на строку и два символа. функция должна заменить в строке все вхождения первого символа на символ "*" если рядом с этим символом не стоит второй символ. вот мой код: void zam1(char*,char,char); int main() { char s1="caacaa bcbbbcbbbcbc"; char...
C++ Какая-нибудь реализация функции void Fun (double in, double *out) Подскажите, пожалуйста, какую-нибудь любую реализацию прототипа функции: void Fun (double in, double *out) http://www.cyberforum.ru/cpp-beginners/thread326395.html
C++ отладить програму
дана такая задача программы "Данный символьный файл. Учтем, что длина слов не превышает двадцати символов, определить, сколько в файле находится слов, составляя из одного, двух, трех и т.д. символов." не могу понять чего она не компилируется. #include <iostream> #include <fstream> #include <Windows.h> #include <string.h> #include <vector> #include <sstream>
в классе создаётся объект оператором new, как его удалить после использования в основной программе? delete в вызывающей функции не вариант! C++
Собсно //Это типа служебного класса. (Внимание! В оригинальном коде он вложен в класс xx, но я этого не стал делать, дабы не усложнять код!) class nemo_ { }; //А это вот класс для конечного пользователя
C++ что не так?не выводит значения... http://www.cyberforum.ru/cpp-beginners/thread326366.html
#include <vcl.h> #include <math.h> #include <iostream.h> #include <stdlib.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused
C++ Вывод на монитор графики, не используя WinAPI Каким образом можно осуществлять работу с графикой и мультимедиа, не используя функции winapi? Не думаю, что это невозможно, ведь полно других ОС, кроме windows, использующих графику и визуализацию. Собственно всё сводится к обращению к портам монитора, к операциям ввода-вывода? Просто недавно меня поставили в тупик, сказав, что это невозможно, или это возможно, но только с использованием... подробнее

Показать сообщение отдельно
boov
Сообщений: n/a
24.09.2011, 10:16
1) реализовать к-р копирования и оператор присваивания или запретить их (из-за top могут быть проблемы)
2) добавить методы size and empty
3) при попытке читать из пустого стека кидать исключение
4) часто требуется лишь посмотреть верхний элемент стека, не извлекая его => добвить соответствующий метод, как правило он называется Top
5) по извлечению, метод реализован неправильно (лишний new, утечка памяти):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class T> T Stack<T>::Pop()
{
       //проверить на пусто и выкинуть исключение, если так
       // if(top==NULL)
       ///         return NULL;
        
        //tackEl *t = new StackEl;
        T data(top->data); //у T должен быть копирующий к-р
        //t = top;
        delete top;
        top = top->prev;
        //не забыть уменьшить размер стека
        return data;
}
6) в конструкторе вместо temp использовать top, иначе опять утечка, да и зачем лишнее присваивание.

PS:
a)путаница с понятиями стек-очередь LIFO-FIFO
b)посмотреть в сторону использования очереди из stl и реализовать класс стека как обертку над ней
c)реализацию класса очереди не стал смотреть
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru