Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
dino-4udo
-41 / 5 / 1
Регистрация: 16.12.2010
Сообщений: 68
#1

Как организовать очереди (queues) в с++ builder - C++ Builder

05.03.2012, 02:22. Просмотров 1885. Ответов 4
Метки нет (Все метки)

Доброго времени суток!
Ребят, есть варианты как организовать очереди в с++ builder.

Может примеры прог в с++ builder с использованием очередей?

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2012, 02:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как организовать очереди (queues) в с++ builder (C++ Builder):

"Резиновая вёрстка" в С++ Builder. Как организовать пропорциональное изменение дизайна окон и их компонентов - C++ Builder
Всем добрый день! Возник вопрос, который, думаю, многим, особенно начинающим разработчикам, будет полезен и интересен. Как в билдере...

Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010? - C++ Builder
Народ! Такая проблема... Есть набор компонентов т.н. Dicom VCL. Сайт производителя - http://www.medicalconnections.co.uk/. У них на...

Как заставить проект Builder 6 загруженный в Builder 2007 отображать новые кнопки - C++ Builder
Люди добрые, кто нибудь встречался с такой проблемой: Я установил Builder 2007, загрузил в него проект, сделанный в Builder 6, при этом...

Как заставить проект сделанный на C++ Builder 6.0 работать на компьютере на котором не установлен этот самый Builder - C++ Builder
вопрос абсолютно нубский,но очень волнует...но как заставить проект сделанный на C++ Builder 6.0 работать на компьютере на котором не...

Можно ли использовать C++ Builder v11 если купить Embarcadero C++Builder XE8 - C++ Builder
День добрый! Есть старый проект С++. Он компилируется на CodeGear™ C++Builder Version 11. Но на это ПО утеряна лицензия, сейчас...

Какой компилятор C++ Builder использовать? Rad Studio 2009 глючит. C++ Builder 6 старый - C++ Builder
Много раз замечал непонятки с компилятором. Масла в огонь подлил Какой посоветуете?

4
vxg
Модератор
3184 / 1987 / 227
Регистрация: 13.01.2012
Сообщений: 7,684
05.03.2012, 08:04 #2
есть объекты очереди разных типов. можно сделать очередь-велосипед на базе списка. подробности см. описание STD
1
Kabak
155 / 144 / 9
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
05.03.2012, 10:00 #3
Что-то вроде этого и есть очередь элементов. А как превратить в очередь того что нужно вам, фантазируйте сами...

Queue.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef QueueH
#define QueueH
//---------------------------------------------------------------------------
 
//---------------------------------------------------------------------------
template <class T> class Element
{
 public:
        T *Body;
        Element *Next,*Prior;
 
        Element();
        ~Element();
};
//---------------------------------------------------------------------------
template <class T> class Queue
{
 public:
        Queue();
        ~Queue();
        int Size;
        Element<T> *First;
        Element<T> *Last;
        void Add(Element<T> *NewElement);
        void Add(T *NewT);
//        void Add(Queue<T> *Q); //Нельзя пользоваться этой функцией в таком варианте, только через копию элементов
        void Delete(Element<T> *NewElement);
        void DeleteFirst();
        void DeleteAll();
        Element<T> * Seek(const T *NewT);
};
//---------------------------------------------------------------------------
#endif
Queue.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//---------------------------------------------------------------------------
#pragma hdrstop
 
#include "Queue.h"
#include <vcl.h>
 
//---------------------------------------------------------------------------
template <class T> Element<T>::Element()
{
 Next=NULL;
 Prior=NULL;
}
//---------------------------------------------------------------------------
template <class T> Element<T>::~Element()
{
 delete Body;
}
//---------------------------------------------------------------------------
template <class T> Queue<T>::Queue()
{
 First=NULL;
 Last=NULL;
 Size=0;
}
//---------------------------------------------------------------------------
template <class T> Queue<T>::~Queue()
{
 DeleteAll();
}
//---------------------------------------------------------------------------
template <class T> void Queue<T>::Add(Element <T> *NewElement)
{
 if(!NewElement)
  return;
 if(First==NULL)
 {
  First=NewElement;
  Last=First;
 }
 else
 {
  NewElement->Prior=Last;
  Last->Next=NewElement;
  Last=Last->Next;
 }
 Size++;
}
//---------------------------------------------------------------------------
template <class T> void Queue<T>::Add(T *NewT)
{
 Element<T> *LPElement=new Element<T>();
 LPElement->Body=NewT;
 Add(LPElement);
}
//---------------------------------------------------------------------------
/*template <class T> void Queue<T>::Add(Queue <T> *Q)
{
 Element *CurElement=Q->First;
 while(CurElement)
 {
  Add(CurElement);
  CurElement=CurElement->Next;
 }
};*/
//---------------------------------------------------------------------------
template <class T> void Queue<T>::Delete(Element<T> *NewElement)
{
 if(!NewElement)
  return;
 if(NewElement->Prior)
  NewElement->Prior->Next=NewElement->Next;
 else
  First=NewElement->Next;
 
 if(NewElement->Next)
  NewElement->Next->Prior=NewElement->Prior;
 else
  Last=NewElement->Prior;
 
 delete NewElement;
}
//---------------------------------------------------------------------------
template <class T> void Queue<T>::DeleteFirst()
{
 Element<T> *Pointer;
 if(First!=NULL)
 {
  Pointer=First->Next;
  delete First;
  First=Pointer;
  Size--;
 }
 else
  Last=NULL;
}
//---------------------------------------------------------------------------
template <class T> void Queue<T>::DeleteAll()
{
  while(First!=NULL)
   DeleteFirst();
}
//---------------------------------------------------------------------------
template <class T> Element<T> * Queue<T>::Seek(const T *NewT)
{
 for(Element<T> *CurElement=First;CurElement!=NULL;CurElement=CurElement->Next)
  if((*CurElement->Body)==(*NewT))
   return(CurElement);
 return(NULL);
}
//---------------------------------------------------------------------------
#pragma package(smart_init)
2
dino-4udo
-41 / 5 / 1
Регистрация: 16.12.2010
Сообщений: 68
05.03.2012, 10:46  [ТС] #4
Построить очередь символов. Как ее можно связать с Edit?
0
Kabak
155 / 144 / 9
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
05.03.2012, 11:34 #5
не понял... О_о
0
05.03.2012, 11:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 11:34
Привет! Вот еще темы с ответами:

Как организовать поток в FMX C++ Builder? - C++ Builder FireMonkey
Как, не используя средства Delphi, организовать поток? Буду признателен за намек или может быть даже пример.

Как организовать связь между приложениями без статического IP. C++ Builder - Сети
Доброго времени суток Возникла задача предачи данных с другим офисом. С написанием ПО проблем вроде нет (использую INDY в Builder), но...

Организовать доступ к элементам очереди из двух потоков - C#
1 поток добавляет элементы в очередь. 2 дргуих должны счиать кждый элемент очереди. Как наилучшим образом организовать считываение...

Организовать три очереди с одинаковым количеством элементов - Delphi
Организовать три очереди с одинаковым количеством элементов, содержащие соответственно имена, отчества и фамилии людей. Составить очередь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru