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

Вывести содержимое очереди на экран двумя столбцами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объясните условие http://www.cyberforum.ru/cpp-beginners/thread392261.html
Имеются числа А1,А2,...,АN и B1,B2,...,BN. Составить из них N пар (Аi, Bj) таким образом, чтобы сумма произведений пар была максимальна (минимальна). Каждое Ai и Bj в парах встречаются ровно по одному разу. Что значит сумма произведений пар была
C++ анимация в C++ OOP - нужен совет по подходу Всем день добрый Получил вот такое задание по C++ Object Oriented Programming: 1. создать програму которая будет получать от юзера данне прямоугольника(верхний левый угол+ширина и высота) и буде рисовать его на экране 80x25 - это сделано :) 2.теперь хотят что-бы я создал анимацию движения прямоугольников по экрану в 2 версиях: первая - без столкновений. втарая - со... http://www.cyberforum.ru/cpp-beginners/thread392250.html
C++ оператор if
если А = 5 , то пишется if(A == 5) а если А от 5 до 7 включительно, как записать ?
Как лучше возвращать значение из операции-функции C++
В следующем коде при перегрузке оператора '+' функция возвращает ссылку на временный объект Point&operator+(int d) и Point&operator+(int d,Point&Z) но так же можно вернуть сам объект Point operator+(int d) и Point operator+(int d,Point&Z) работает и так и так. Как лучше? #include <iostream> using namespace std; // класс "точка" class Point
C++ Задача.Игра в числа http://www.cyberforum.ru/cpp-beginners/thread392229.html
Вася очень любит играть в числа. Для этой игры нужна колода из N различных целых чисел от 1 до N. Эдик(который тоже очень любит эту игру) только что достал новую колоду. Вася с первого взгляда определил, что в колоде недостает одного числа. Зная N (количество чисел, которое должно быть в колоде) и S (сумму имеющихся чисел), помогите Васе определить, какого именно числа недостает. В первой...
C++ Иконка Всем привет !! ПОдскажите плизз как можно ехе файлу твоей программы можно задать иконку какую ты хочешь ? подробнее

Показать сообщение отдельно
greshnikk
30 / 30 / 0
Регистрация: 05.11.2008
Сообщений: 162
27.11.2011, 12:36     Вывести содержимое очереди на экран двумя столбцами
Ваше решение очень грубое, к тому же ошибочное. Ошибка состоит в том, что Вам необходимо выделить память под каждый элемент массива. То есть делается это в цикле. Вы же выделили память только под один элемент.
Я предложил Вам очень практичный вариант. Каждая сущность должна отвечать только за свою часть работы. Метод добавления элемента в очередь должен заботиться только о добавлении элемента в очередь. Вы же нагружаете его работой, которая ему не свойственна. Вы говорите что он должен еще и заботится о создании массива и еще о добавлении всего массива в очередь. Это очень не красивый способ программирования. Если Вам интересно, прочитайте по этому поводу эту коротенькую статью.
Я вам составил наиболее приемлемый алгоритм действий. Если Вы все-таки хотите написать по-своему, тогда ошибку я Вам уже разъяснил. Выделять память надо под каждый элемент массива, а не под один.

Цитата Сообщение от irina3456 Посмотреть сообщение
по порядку, это объявили класс CH, где к-место, куда помещается вводимое число, а что такое - CH *ptr; ???
Если после прочтения, рекомендованной мною статьи, Вы не до конца поняли идею очереди, я постараюсь объяснить. Очередь состоит из элементов, кусочков памяти, в данном случае структур. Каждый такой кусочек памяти имеет данные, которые он хранит. Возникает вопрос, а как тогда узнать, в каком участке ОЗУ хранится тот или иной кусочек ? Они ведь разбросаны по всей памяти. Выход следующий - каждая структура будет хранить не только данные, но и указатель, где расположен следующий кусочек. И тогда получается, что зная адрес хвостика, мы сможем добраться до любой структуры, перемещаясь по указателю. То есть мы идем по адресу, который хранится в хвостике (это и есть наш CH* ptr) и приходим на предпоследний элемент. Если в нем пойти по адресу, придем на пред пред последний элемент и так далее.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru