Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30

x17lab: решил заняться исследованием алгоритмов и структур данных

30.11.2024, 19:38. Показов 16615. Ответов 94
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Создал тему в разделе новичков, т.к. это единственный раздел на форуме, который активен.

Я последнюю неделю пишу свою библиотеку для работы с алгоритмами и структурами данных. Я решил заняться полным исследованием алгоритмов и структур данных.

И хотя я на данный момент не знаю ничего , к примеру, о банальной сортировке пузырьком, но я скоро узнаю это.

Здесь будут мои вопросы по архитектуре, и проектированию алгоритмов.

Думаю, мне еще далеко до деревьев, и графов.

Мой код динамического массива (вектор), и да, я пока не устал пихать его в свои темы:
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
///
/// MindBlow.hpp
///
 
#ifndef MINDBLOW_GUARD
#define MINDBLOW_GUARD
 
#include <initializer_list>
#include <iostream>
#include <sstream>
 
 
template<typename MindBlowStreamType>
class MindBlow
{
public:
 
    /// <summary>
    /// Shortcut for a data type.
    /// </summary>
    using x17labMindStreamerT         = MindBlowStreamType;
 
    /// <summary>
    /// Shortcut for a pointer.
    /// </summary>
    using x17labMindStreamerPtrT      = x17labMindStreamerT*;
 
    /// <summary>
    /// Shortcut for a size.
    /// </summary>
    using x17labMindStreamerSizeTT   = size_t;
 
    /// <summary>
    /// Other definitions.
    /// </summary>
    #define x17labInline             inline
    #define x17labNoThrow            noexcept
    #define x17labThrow              throw
    #define x17labNullptr            nullptr
 
    /// <summary>
    /// Dynamically allocated (raw) array.
    /// </summary>
    x17labMindStreamerPtrT          x17labMindStreamerRAWRWX;
 
    /// <summary>
    /// Count of items (track counter).
    /// </summary>
    x17labMindStreamerSizeTT        x17labMindStreamerSynchro;
 
    /// <summary>
    /// Newly dynamically allocated array class with 1 single item, and it's default value is 1.
    /// </summary>
    explicit
    x17labInline
    MindBlow()
    {
        x17labDekTheRaw(1u);
    }
 
    /// <summary>`
    /// Newly dynamically allocated array class with given amount of items.
    /// </summary>
    /// <param name="Synchro">Count of items to initialize items.</param>
    explicit
    x17labInline
    MindBlow(x17labMindStreamerSizeTT Synchro)
    {
        x17labDekTheRaw(Synchro);
    }
 
    /// <summary>
    /// Newly dynamically allocated array class with initializer list in it.
    /// </summary>
    /// <param name="SuperNovaIL">Initializer list.</param> 
    explicit
    x17labInline
    MindBlow(std::initializer_list<x17labMindStreamerT> SuperNovaIL)
    {
        x17labDekTheRaw(SuperNovaIL.size());
 
        if ((SuperNovaIL.size()) <= (0u))
        {
            x17labThrow (std::invalid_argument("MindBlow:: invalid argument has been passed."));
        }
 
        decltype(x17labMindStreamerSynchro) ILIterator {0u};
        for (x17labMindStreamerT Picker : SuperNovaIL)
        {
            x17labMindStreamerRAWRWX[ILIterator++] = Picker;
        }
    }
 
    /// <summary>
    /// Destructor (deallocate and free memory used by this dynamically allocated array class).
    /// </summary>
    x17labInline
    ~MindBlow()
    {
        x17labEjector();
        x17labNullify();
    }
 
    /// <summary>
    /// Get the amount of items in this dynamically allocated array class.
    /// </summary>
    /// <returns>Amount of items.</returns>
    x17labInline
    x17labMindStreamerSizeTT x17labMindStreamerSynchrohronizer()
    {
        if ((x17labNull()) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labMindStreamerSynchrohronizer:: x17lab is fully zeroed."));
        }
 
        return (x17labMindStreamerSynchro);
 
    }
 
    /// <summary>
    /// Check dynamically allocated array is out of bounds (internal check).
    /// </summary>
    /// <param name="Synchro">Index to check.</param> 
    /// <returns>True if its in range.</returns>
    x17labInline
    bool x17labOverflow(x17labMindStreamerSizeTT Synchro)
    {
        if ((Synchro) >= (x17labMindStreamerSynchro))
        {
            x17labThrow (std::invalid_argument("x17labOverflow:: overflow has been detected."));
        }
        
        return (true);
    }
 
    /// <summary>
    /// Create dynamically allocated aray class with given amount of items,  provided in argument.
    /// </summary>
    /// <param name="x17labSynchro">Tracker of items.</param> 
    x17labInline
    void x17labDekTheRaw(x17labMindStreamerSizeTT Synchro) x17labNoThrow
    {
        x17labMindStreamerRAWRWX  = new (x17labMindStreamerT[Synchro])();
        x17labMindStreamerSynchro =  {Synchro};
    }
 
    /// <summary>
    /// Check if there are items in this dynamically allocated array class.
    /// </summary>
    /// <returns>True in case allocated array class has items.</returns>
    x17labInline
    bool x17labNull() x17labNoThrow
    {
        if ((x17labMindStreamerSynchro) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labNull:: Synchro has been nulled."));
        }
 
        return (true);
    }
 
    /// <summary>
    /// Check if there is an initialiizer list in this dynamically allocated array class.
    /// </summary>
    /// <param name="SuperNovaIL">Initializer list to perform the needed checks.</param> 
    /// <returns>True in case has an initializer list.</returns>
    x17labInline
    bool x17labSuperNovaILOverflow(std::initializer_list<x17labMindStreamerT> SuperNovaIL)
    {
        if ((SuperNovaIL.size()) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labSuperNovaILOverflow:: argument is out of range."));
        }      
 
        return (true);
    }
 
    /// <summary>
    /// Check if proveded dynamically allocated array and it's index is valid.
    /// </summary>
    /// <param name="MindStreamRaw">Dynamically allcated (raw) array to check.</param> 
    /// <param name="Synchro">Index to perform the needed checks.</param> 
    /// <returns>True in case array within the range.</returns>
    x17labInline
    bool x17labFlow(x17labMindStreamerPtrT MindStreamRaw, x17labMindStreamerSizeTT Synchro)
    {
        if ((MindStreamRaw) == (x17labNullptr) || (Synchro) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labFlow:: error has been detected."));
        }
 
        return (false);
    }
 
    /// <summary>
    /// Check if dynamically allocated array class has items in it.
    /// </summary> 
    /// <returns>True in case has items.</returns>
    x17labInline
    bool x17labIsAvailable() x17labNoThrow
    {
        if ((x17labMindStreamerSynchro) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labIsAvailable:: array has not items in it."));
        }
 
        return (true);
    }
 
    /// <summary>
    /// Assign item for this dynamically allocated array class to a provided one.
    /// </summary>
    /// <param name="StreamerValue">Value to set.</param>
    /// <param name="Synchro">Index to set.</param> 
    x17labInline
    void x17labYield(x17labMindStreamerT StreamerValue, x17labMindStreamerSizeTT Synchro)
    {
        if (x17labOverflow(Synchro))
        {
            x17labThrow (std::invalid_argument("x17labYield:: invalid argument."));
        }
 
        x17labMindStreamerRAWRWX[Synchro] = {StreamerValue};
    }
 
    /// <summary>
    /// Assign this dynamocally allocated array class to another array (raw).
    /// </summary>
    /// <param name="MindStreamerPtr">Raw array."</param>
    x17labInline
    void x17labYield(x17labMindStreamerPtrT MindStreamerPtr)
    {   
        if (x17labMindStreamerRAWRWX    == (x17labNullptr) ||
            MindStreamerPtr             == (x17labNullptr))
        {
            x17labThrow(std::invalid_argument("x17labYield:: invalid array."));
        }
 
        x17labMindStreamerRAWRWX = MindStreamerPtr;
    }
 
    // <summary>
    // Change the size of this dynamically allocated array class (raw array).
    // Allocate new buffer, and assign the new buffer to a raw array. 
    // </summary>
    // <param name="New">New size."</param>
    x17labInline
    void x17labShrinkify(x17labMindStreamerSizeTT New) x17labNoThrow
    {
        x17labMindStreamerPtrT MindStreamPtrNew = new x17labMindStreamerT[New]();
        if (MindStreamPtrNew != (x17labNullptr))
        {
            std::memcpy((MindStreamPtrNew), x17labMindStreamerRAWRWX, (x17labMindStreamerSynchro * sizeof(x17labMindStreamerT)));
            if (MindStreamPtrNew != (x17labNullptr))
            {
                x17labMindStreamerSynchro = New;
            }
        }
 
        x17labYield(MindStreamPtrNew);
 
        x17labEjector(MindStreamPtrNew);
        x17labNullify(MindStreamPtrNew);
    }
 
    /// <summary>
    /// Finds the summaty of all items in this dynamically allocated array class.
    /// </summary> 
    /// <returns>Summary of elements.</returns>
    x17labInline
    x17labMindStreamerSizeTT x17labSeekSummary() x17labNoThrow
    {
        x17labMindStreamerSizeTT Summary = {0u};
        for (x17labMindStreamerT (Picker) : x17labMindStreamerRAWRWX)
        {
            (Summary += (Picker));
        }
 
        return (Summary);
    }
 
    /// <summary>
    /// Check if this dynamically allocated array class is valid.
    /// </summary>
    /// <returns>True in case array is valid.</returns>
    x17labInline
    bool x17labIntegrity() x17labNoThrow
    {
        if (x17labMindStreamerRAWRWX != x17labNullptr)
        {
            x17labThrow(std::invalid_argument("x17labIntegrity:: invalid intergity."));
        }
 
        return (false);
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array using delete[] operator (internal).
    /// </summary>
    x17labInline
    void x17labEjector() x17labNoThrow
    {
        if (x17labMindStreamerRAWRWX != (x17labNullptr))
        {
            delete [] x17labMindStreamerRAWRWX;
        }
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array using delete[] operator.
    /// </summary>
    x17labInline
    void x17labEjector(x17labMindStreamerPtrT MindStreamerPtr) x17labNoThrow
    {
        if (MindStreamerPtr != (x17labNullptr))
        {
            delete [] MindStreamerPtr;
        }
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array class (internal). 
    /// </summary>
    x17labInline
    void x17labNullify() x17labNoThrow
    {
        x17labMindStreamerRAWRWX = (x17labNullptr);
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array class. 
    /// </summary>
    /// <param name="MindStreamerPtr">Raw."</param>
    x17labInline
    void x17labNullify(x17labMindStreamerPtrT MindStreamerPtr) x17labNoThrow
    {
        MindStreamerPtr = (x17labNullptr);
    }
 
    /// <summary>
    /// Print content by using console.
    /// </summary>
    x17labInline
    void x17labStringlyfi() x17labNoThrow
    {
        std::wstringstream WStreamStringlyfi{};
        for (decltype(x17labMindStreamerSynchro) SynchroIt{ 0u }; SynchroIt < x17labMindStreamerSynchro; SynchroIt++)
        {
            WStreamStringlyfi << "StreamerIdx: " << SynchroIt << " Value: " << x17labMindStreamerRAWRWX[SynchroIt] << " " << std::endl;
        }
 
        std::wcout << WStreamStringlyfi.str() << std::endl;
    }
};
 
#endif
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.11.2024, 19:38
Ответы с готовыми решениями:

Отец решил заняться программированием
Здрасьте, посетители киберфорума, у меня вот такая вот ситуация. Мой отец (будет 40 лет в этом году) решил программированием заняться,...

Help me! Решил заняться веб-дизайном.
Привет! Я работаю преподавателем информатики в лицее. Решил заняться веб-дизайном. Программки нашёл, туториалы.. Ну, в общем не найду...

Решил заняться окраской корпусных и процессорных вентиляторов
Здравствуйте товарищи. Вот решил продолжить моддинг своего компьютера. На этот раз решил заняться окраской корпусных и процессорных...

94
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
22.01.2025, 10:55  [ТС]
Студворк — интернет-сервис помощи студентам
Да, не очень хорошее название переменных, уже чуть-чуть переделал и стало лучше. Делал в неадеквате, и на жутком страхе смерти, поэтому так получилось. У меня короче когда как, когда я в ударе, а когда и пару строчек не могу выдать.

Дайте хороший по вашему мнению код, по которому следует учиться. Если вы утверждаете что это не код, так дайте тогда код. ИМХО, мой код не так уж плох, в книгах так программировать не учат.
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
22.01.2025, 14:25
Sneakzzz,
Сходи на базар. Купи себе гуся. Отруби ему голову и крути ему мозги.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
22.01.2025, 14:40
Цитата Сообщение от Наталья8 Посмотреть сообщение
и крути ему мозги.
Стоит ли идти в ВУЗ в 33 года?
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
26.01.2025, 19:12  [ТС]
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
///
/// MindFlareRAWRWX.hpp
///
 
#ifndef MINDFLARERAWRWX_GUARD
#define MINDFLARERAWRWX_GUARD
 
#include <initializer_list>
#include <iostream>
#include <sstream>
 
 
template<typename MindFlareRAWRWXType>
class MindFlareRAWRWX
{
public:
 
    /// <summary>
    /// DataT (link).
    /// <summary>
    using x17labMindFlareRAWRWXPointerT     = MindFlareRAWRWXType;
 
    /// <summary>
    /// Raw pointer (link).
    /// </summary>
    using x17labMindFlareRAWRWXStarT        = x17labMindFlareRAWRWXPointerT*;
 
    /// <summary>
    /// Size (link).
    /// </summary>
    using MindFlareRAWRWXSizetT             = size_t;
 
    /// <summary>
    /// Inline function.
    /// </summary>
    #define x17labMindFlareRAWRWXInline     inline
 
    /// <summary>
    /// Noexcept definition. 
    /// </summary>
    #define x17labRAWRWXX17CitadelOfDeath   noexcept
 
    /// <summary>
    /// Throw exception.
    /// </summary>
    #define x17labMindFlareRAWRWXThrow      throw
 
    /// <summary>
    /// Void ponter.
    /// </summary>
    #define x17labRAWRAWRWXNullReference    nullptr
 
    /// <summary>
    /// Constant expression.
    /// </summary>
    #define x17labMindFlareRAWRWXConst      const
 
    /// <summary>
    /// Dynamically allocated (raw) array.
    /// </summary>
    x17labMindFlareRAWRWXStarT              x17labMindFlareRAWRWXPointer;
 
    /// <summary>
    /// Count of items (track counter).
    /// </summary>
    MindFlareRAWRWXSizetT                   x17labMindFlareRAWRWXSynchrofazathron;
 
    /// <summary>
    /// Newly dynamically allocated array class with 1 single item, and it's default value is 1.
    /// </summary>
    explicit
    x17labMindFlareRAWRWXInline
    MindFlareRAWRWX()
    {x17labDekTheRawInternal(1u);}
 
    /// <summary>`
    /// Newly dynamically allocated array class with given amount of items.
    /// </summary>
    /// <param name="Synchrofazathron">Count of items to initialize.</param>
    explicit
    x17labMindFlareRAWRWXInline
    MindFlareRAWRWX(MindFlareRAWRWXSizetT Synchrofazathron)
    {x17labDekTheRawInternal(Synchrofazathron);}
 
    /// <summary>
    /// Newly dynamically allocated array class with initializer list in it.
    /// </summary>
    /// <param name="NovaIL">Initializer list.</param> 
    explicit
    x17labMindFlareRAWRWXInline
    MindFlareRAWRWX(std::initializer_list<x17labMindFlareRAWRWXPointerT> NovaIL)
    {
        x17labDekTheRawInternal(NovaIL.size());
 
        if ((NovaIL.size()) <= (0))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("MindFlareRAWRWX:: invalid argument has been passed."));}
 
        decltype(x17labMindFlareRAWRWXSynchrofazathron) RAWRWXILIterator {0u};
        for (x17labMindFlareRAWRWXPointerT(RAWRWXPicker) : (NovaIL))
        {
            x17labMindFlareRAWRWXPointer[RAWRWXILIterator] = (RAWRWXPicker);
            RAWRWXILIterator++;
        }
    }
 
    /// <summary>
    /// Destructor (deallocate and free memory used by this dynamically allocated array class).
    /// </summary>
    x17labMindFlareRAWRWXInline
    ~MindFlareRAWRWX()
    {
        x17labEjectorInternal();
        x17labNullifyInternal();
    }
 
    /// <summary>
    /// <<Get the amount of items in this dynamically allocated array class.>>
    /// </summary>
    /// <returns>Amount of items.</returns>
    x17labMindFlareRAWRWXInline
    MindFlareRAWRWXSizetT x17labMindFlareRAWRWXSynchofazathronG()
    {
        if ((x17labNull()) <= (0u))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17lab is fully zeroed."));}
 
        return (x17labMindFlareRAWRWXSynchrofazathron);
 
    }
 
    /// <summary>
    /// Check dynamically allocated array is out of bounds (internal check).
    /// </summary>
    /// <param name="Synchro">Index to check.</param> 
    /// <returns>True if its in range.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labOutOfRange(MindFlareRAWRWXSizetT Synchrofazathron)
    {
        if ((Synchrofazathron) >= (x17labMindFlareRAWRWXSynchrofazathron))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labOutOfRange:: overflow has been detected."));}
 
        return (true);
    }
 
    /// <summary>
    /// Create dynamically allocated aray class with given amount of items, provided in argument.
    /// </summary>
    /// <param name="Synchrofazathron">Tracker of items.</param>
    /// <returns>Pointer to an array.</returns>
    x17labMindFlareRAWRWXInline
    void x17labDekTheRaw(MindFlareRAWRWXSizetT Synchrofazathron) x17labRAWRWXX17CitadelOfDeath
    {
        x17labMindFlareRAWRWXConst x17labMindFlareRAWRWXStarT RAWRWXPointer = new (x17labMindFlareRAWRWXPointerT[Synchrofazathron])();
        return (RAWRWXPointer);
    }
 
    /// <summary>
    /// Create dynamically allocated aray class with given amount of items,  provided in argument.
    /// </summary>
    /// <param name="Synchrofazathron">Tracker of items.</param> 
    x17labMindFlareRAWRWXInline
    void x17labDekTheRawInternal(MindFlareRAWRWXSizetT Synchrofazathron) x17labRAWRWXX17CitadelOfDeath
    {
        x17labMindFlareRAWRWXPointer           = new (x17labMindFlareRAWRWXPointerT[Synchrofazathron])();
        x17labMindFlareRAWRWXSynchrofazathron  = {Synchrofazathron};
    }
 
    /// <summary>
    /// Check if there are items in this dynamically allocated array class.
    /// </summary>
    /// <returns>True in case allocated array class has items.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labNull() x17labRAWRWXX17CitadelOfDeath
    {
        if ((x17labMindFlareRAWRWXSynchrofazathron) <= (0))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labNull:: Synchrofazathron has been nulled."));}
 
        return (true);
    }
 
    /// <summary>
    /// Check if there is an initialiizer list in this dynamically allocated array class.
    /// </summary>
    /// <param name="NovaIL">Initializer list to perform the needed checks.</param> 
    /// <returns>True in case has an initializer list.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labSuperNovaILOverflow(std::initializer_list<x17labMindFlareRAWRWXPointerT> NovaIL)
    {
        if ((NovaIL.size()) <= (0))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labSuperNovaILOverflow:: argument is out of range."));}
 
        return (true);
    }
 
    /// <summary>
    /// Check if proveded dynamically allocated array and it's index is valid.
    /// </summary>
    /// <param name="RAWRWXPointer">Dynamically allcated (raw) array to check.</param> 
    /// <param name="Synchrofazathron">Index to perform the needed checks.</param> 
    /// <returns>True in case array within the range.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labRAWRWXFlow(x17labMindFlareRAWRWXConst x17labMindFlareRAWRWXStarT RAWRWXPointer, MindFlareRAWRWXSizetT Synchrofazathron) x17labMindFlareRAWRWXConst
    {
        if ((RAWRWXPointer)    == (x17labRAWRAWRWXNullReference) ||
            (Synchrofazathron) <= (0))
        {
            x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labFlow:: error has been detected."));
        }
 
        return (false);
    }
 
    /// <summary>
    /// Check if dynamically allocated array class has items in it.
    /// </summary> 
    /// <returns>True in case has items.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labIsAvailable() x17labRAWRWXX17CitadelOfDeath
    {
        if ((x17labMindFlareRAWRWXSynchrofazathron) <= (0u))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labIsAvailable:: array has not items in it."));}
 
        return (true);
    }
 
    /// <summary>
    /// Assign item for this dynamically allocated array class to a provided one.
    /// </summary>
    /// <param name="RAWRWXValue">Value to set (index to set).</param>
    /// <param name="Synchrofazathron">Index to set.</param> 
    x17labMindFlareRAWRWXInline
    void x17labYield(x17labMindFlareRAWRWXPointerT RAWRWXValue, MindFlareRAWRWXSizetT Synchrofazathron) x17labMindFlareRAWRWXConst
    {
        if (x17labOutOfRange(Synchrofazathron))
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labYield:: invalid argument."));}
 
        x17labMindFlareRAWRWXPointer[Synchrofazathron] = { RAWRWXValue };
    }
 
    /// <summary>
    /// Assign this dynamocally allocated array class to another array (raw).
    /// </summary>
    /// <param name="RAWRWXPointer">Raw array."</param>
    x17labMindFlareRAWRWXInline
    void x17labYield(x17labMindFlareRAWRWXStarT RAWRWXPointer) x17labMindFlareRAWRWXConst
    {
        if (x17labMindFlareRAWRWXPointer == (x17labRAWRAWRWXNullReference) ||
            RAWRWXPointer                == (x17labRAWRAWRWXNullReference))
        {
            x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labYield:: invalid array."));
        }
 
        x17labMindFlareRAWRWXPointer = {RAWRWXPointer};
    }
 
    /// <summary>
    /// Change the size of this dynamically allocated array class (raw array).
    /// Allocate new buffer, and assign the new buffer to a raw array.
    /// </summary>
    /// <param name="RAWRWXNew">New size."</param>
    x17labMindFlareRAWRWXInline
    void X17LabSlim(MindFlareRAWRWXSizetT RAWRWXNew) x17labRAWRWXX17CitadelOfDeath
    {
        x17labMindFlareRAWRWXStarT RAWRWXPointer = new x17labMindFlareRAWRWXPointerT[RAWRWXNew]();
        if (RAWRWXPointer != (x17labRAWRAWRWXNullReference))
        {
            x17labCopy((RAWRWXPointer), x17labMindFlareRAWRWXPointer, (x17labMindFlareRAWRWXSynchrofazathron * sizeof(x17labMindFlareRAWRWXPointerT)));
            if (RAWRWXPointer != (x17labRAWRAWRWXNullReference))
            {
                x17labMindFlareRAWRWXSynchrofazathron = (RAWRWXNew);
            }
        }
 
        x17labYield(RAWRWXPointer);
 
        x17labEjector(RAWRWXPointer);
        x17labNullify(RAWRWXPointer);
    }
 
    /// <summary>
    /// Change the size of this dynamically allocated array class (raw array), and fill it with required data.
    /// </summary>
    /// <param name="RAWRWXNew">New size to change."</param>
    /// <param name="RAWRWXValue">Value to fill."</param>
    x17labMindFlareRAWRWXInline
    void x17labShrinkifyAll(MindFlareRAWRWXSizetT RAWRWXNew, x17labMindFlareRAWRWXPointerT RAWRWXValue) x17labRAWRWXX17CitadelOfDeath
    {
        X17LabSlim(RAWRWXNew);
        if (RAWRWXNew > 0u)
        {
            x17labInfuse(x17labMindFlareRAWRWXPointer, (x17labMindFlareRAWRWXPointer)+(x17labMindFlareRAWRWXSynchrofazathron), RAWRWXValue);
        }
    }
 
    /// <summary>
    /// Finds the summaty of all items in this dynamically allocated array class.
    /// </summary> 
    /// <returns>Summary of elements.</returns>
    x17labMindFlareRAWRWXInline
    MindFlareRAWRWXSizetT x17labSummary() x17labRAWRWXX17CitadelOfDeath
    {
        MindFlareRAWRWXSizetT RAWRWXSummary = {0u};
        for (x17labMindFlareRAWRWXPointerT(RAWRWXPicker) : x17labMindFlareRAWRWXPointer)
        {(RAWRWXSummary += (RAWRWXPicker));}
 
        return (RAWRWXSummary);
    }
 
    /// <summary>
    /// Finds the maximal value if this dynamically allocated array class.
    /// </summary> 
    /// <returns>Maximal item.</returns>
    x17labMindFlareRAWRWXInline
    MindFlareRAWRWXSizetT x17labFindMax() x17labRAWRWXX17CitadelOfDeath
    {
        MindFlareRAWRWXSizetT RAWRWXMaximal = {0u};
 
        for (decltype(x17labMindFlareRAWRWXSynchrofazathron) RAWRWXQueryMaximalIterator = {0u}; (RAWRWXQueryMaximalIterator) <
            (x17labMindFlareRAWRWXSynchrofazathron);
            RAWRWXQueryMaximalIterator++)
        {
            if (x17labMindFlareRAWRWXPointer[RAWRWXQueryMaximalIterator] > RAWRWXMaximal)
            {RAWRWXMaximal = (x17labMindFlareRAWRWXPointer[RAWRWXQueryMaximalIterator]);}
        }
 
        return (RAWRWXMaximal);
    }
 
    /// <summary>
    /// Append item in a dynamically allocated array class.
    /// </summary>
    /// <param name="RAWRWXValue">Value to append."</param>
    x17labMindFlareRAWRWXInline
    void x17labAppend(x17labMindFlareRAWRWXPointerT RAWRWXValue) x17labRAWRWXX17CitadelOfDeath
    {
        X17LabSlim(x17labMindFlareRAWRWXSynchrofazathron + (1u));
        x17labMindFlareRAWRWXPointer[x17labMindFlareRAWRWXSynchrofazathron + 1u] = (RAWRWXValue);
    }
 
    /// <summary>
    /// Append class instance in a dynamically allocated array class.
    /// </summary>
    /// <param name="RAWRWXClass">Class to add."</param>
    x17labMindFlareRAWRWXInline
    void x17labAppendClass(MindFlareRAWRWX<x17labMindFlareRAWRWXPointerT> RAWRWXClass) x17labRAWRWXX17CitadelOfDeath
    {
        for (decltype(x17labMindFlareRAWRWXSynchrofazathron) RAWRWXClassIterator = {0u};
            (RAWRWXClassIterator) < (x17labMindFlareRAWRWXSynchrofazathron);
             RAWRWXClassIterator++)
        {
            x17labMindFlareRAWRWXStarT[RAWRWXClassIterator] = (RAWRWXClass.x17labMindFlareRAWRWXPointer[RAWRWXClassIterator]);
        }
    }
 
    /// <summary>
    /// Finds the exact value in this dynamically allocated array class.
    /// </summary> 
    /// <param name="RAWRWXQuery">Query value."</param>
    /// <returns>True in case has an item.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labQuery(x17labMindFlareRAWRWXPointerT RAWRWXQuery) x17labRAWRWXX17CitadelOfDeath
    {
        for (decltype(x17labMindFlareRAWRWXSynchrofazathron) (RAWRWXQueryIterator) = {0u};
            (RAWRWXQueryIterator) < (x17labMindFlareRAWRWXSynchrofazathron);
             RAWRWXQueryIterator++)
        {
            if (x17labMindFlareRAWRWXPointer[RAWRWXQueryIterator] == (RAWRWXQuery))
            {return (true);}
        }
 
        return (false);
    }
 
    /// <summary>
    /// Get the first element in this dynamically allocate array class.
    /// </summary> 
    /// <returns>First element in the array.</returns>
    x17labMindFlareRAWRWXInline
    x17labMindFlareRAWRWXPointerT WPickerFirst() x17labRAWRWXX17CitadelOfDeath
    {return (x17labMindFlareRAWRWXPointer[0u]);}
 
    /// <summary>
    /// Get the last element in this dynamically allocate array class.
    /// </summary> 
    /// <returns>Last element in the array.</returns>
    x17labMindFlareRAWRWXInline
    x17labMindFlareRAWRWXPointerT WPickerLast() x17labRAWRWXX17CitadelOfDeath
    {return (x17labMindFlareRAWRWXPointer[x17labMindFlareRAWRWXSynchrofazathron]);}
 
    /// <summary>
    /// Check if this dynamically allocated array class is valid.
    /// </summary>
    /// <returns>True in case array is valid.</returns>
    x17labMindFlareRAWRWXInline
    bool x17labIntegrity() x17labRAWRWXX17CitadelOfDeath
    {
        if (x17labMindFlareRAWRWXPointer != x17labRAWRAWRWXNullReference)
        {x17labMindFlareRAWRWXThrow(std::invalid_argument("x17labIntegrity:: invalid integrity."));}
 
        return (false);
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array using delete[] operator (internal routine).
    /// </summary>
    x17labMindFlareRAWRWXInline
    void x17labEjectorInternal() x17labRAWRWXX17CitadelOfDeath
    {
        if (x17labMindFlareRAWRWXPointer != (x17labRAWRAWRWXNullReference))
        {delete [] x17labMindFlareRAWRWXPointer;}
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array using delete[] operator.
    /// </summary>
    x17labMindFlareRAWRWXInline
    void x17labEjector(x17labMindFlareRAWRWXStarT RAWRWXPointer) x17labRAWRWXX17CitadelOfDeath
    {
        if (RAWRWXPointer != (x17labRAWRAWRWXNullReference))
        {delete [] RAWRWXPointer;}
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array class (internal routine).
    /// </summary>
    x17labMindFlareRAWRWXInline
    void x17labNullifyInternal() x17labRAWRWXX17CitadelOfDeath
    {x17labMindFlareRAWRWXPointer = (x17labRAWRAWRWXNullReference);}
 
    /// <summary>
    /// Destroy the dynamically allacated array class.
    /// </summary>
    /// <param name="MindFlareRAWRWXP">Raw array."</param>
    x17labMindFlareRAWRWXInline
    void x17labNullify(x17labMindFlareRAWRWXStarT RAWRWXPointer) x17labRAWRWXX17CitadelOfDeath
    {RAWRWXPointer = (x17labRAWRAWRWXNullReference);}
 
    /// <summary>
    /// Print content by using console.
    /// </summary>
    x17labMindFlareRAWRWXInline
    void x17labStringlyfi() x17labRAWRWXX17CitadelOfDeath
    {
        std::wstringstream WStreamStringlyfi {};
        for (decltype(x17labMindFlareRAWRWXSynchrofazathron) RAWRWXSynchronizerIterator {0u};
            RAWRWXSynchronizerIterator < x17labMindFlareRAWRWXSynchrofazathron;
            RAWRWXSynchronizerIterator++)
        {WStreamStringlyfi << "Idx: " << RAWRWXSynchronizerIterator << " Value: " << x17labMindFlareRAWRWXPointer[RAWRWXSynchronizerIterator] << " " << std::endl;}
 
        std::wcout << WStreamStringlyfi.str() << std::endl;
    }
};
 
#endif
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
27.01.2025, 00:26
Цитата Сообщение от Sneakzzz Посмотреть сообщение
на жутком страхе смерти
А чё её бояться. Она всё равно придёт...
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
14.07.2025, 15:18  [ТС]
Как вам моя новая версия динамического массива (обновленная версия)?
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
14.07.2025, 16:18
А я вот до шестидесяти дожил. Пока вроде а адеквате.
Хотя кто знает, могу и ошибаться.
Когда алкоголиком на мусарне служил, хуже было...
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
18.07.2025, 15:49  [ТС]
Написал небольшую хэш таблицу.

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
112
113
114
115
116
117
118
119
120
121
122
123
///
/// KittyKatWhisker.hpp
///
 
#ifndef KITTYKATWHISKER_GUARD
#define KITTYKATWHISKER_GUARD
 
#include "../KittyKatRWXDef/KittyKatRWXDef.hpp"
 
 
/// <summary>
/// Represents a key-value mapping in a hash table, enabling efficient data storage.
/// </summary>
/// <param="KittyAssignerT">The type of the key being stored.</param>
/// <param="KittyT">The type of the associated value.</param>
template<typename KittyAssignerT,
         typename KittyT>
class KittyKatWhisker
{
    /// <summary>
    /// A feline-friendly alias for <see cref="KittyAssignerT"/>.
    /// </summary>  
    using MeowKittyKatAssignerT = KittyAssignerT;
 
    /// <summary>
    /// A feline-friendly alias for <see cref="KittyT"/>.
    /// </summary>
    using MeowKittyKatT         = KittyT;
 
    /// <summary>
    /// Represents the generic type parameter 
    /// for keys stored in the hashtable.
    /// </summary>
    MeowKittyKatAssignerT        MeowKey;
    
    /// <summary>
    /// Contains the raw predefined data
    /// for MeowKittyKat.
    /// </summary>
    MeowKittyKatT                MeowRaw;
 
public:
 
    /// <summary>
    /// The contructor which does set the class key and data.
    /// </summary>
    /// <param name="Key"> Key to set.</param>
    /// <param name="Item">Item.</param>
    explicit
    KittyKatWhisker(MeowKittyKatAssignerT Key, MeowKittyKatT Item)
        : MeowKey(Key), 
          MeowRaw(Item)
    {}
 
    /// <summary>
    /// The move contructor which does use std::move 
    /// to set class's fields.
    /// </summary>
    /// <param name="Key"> Key to set.</param>
    /// <param name="Item">Item.</param>
    explicit
    KittyKatWhisker(MeowKittyKatAssignerT& Key, MeowKittyKatT& Item)
        : MeowKey(std::move(Key)),
          MeowRaw(std::move(Item))
    {}
 
    /// <summary>
    /// Converts the entry to a std::pair<key, value>.
    /// </summary>
    /// <returns>Pair.</returns>
    KittyForceinline
    std::pair<MeowKittyKatAssignerT, MeowKittyKatT> KittyPair() KittyNoexcept
    {return {MeowKey, MeowRaw};}
 
    /// <summary>
    /// Checks if key is an of arithmetic type.
    /// </summary>
    /// <returns>True if arithmetic.</returns>
    KittyForceinline
    KittyConstexpr 
    KittyBoolean KittyKeyIsArithmetic() KittyNoexcept
    {return std::is_arithmetic_v<MeowKittyKatAssignerT>;}
 
    /// <summary>
    /// Retrieves the internal container key being located 
    /// in a class wrapper.
    /// </summary>
    /// <returns>The key.</returns>
    KittyForceinline
    KittyConstexpr
    KittyT KittyKey() KittyNoexcept
    {return (MeowKey);}
 
    /// <summary>
    /// Retrieves the internal container data.
    /// </summary>
    /// <returns>The data.</returns>
    KittyForceinline
    KittyConstexpr
    KittyT KittyRaw() KittyNoexcept
    {return (MeowRaw);}
 
     /// <summary>
     /// Setter function which does sets the key.
     /// </summary>
     /// <param="Key">Key.</param>
    KittyForceinline
    KittyConstexpr
    KittyVoid KittySetKey(MeowKittyKatAssignerT Key) KittyNoexcept
    {MeowKey = (Key);}
 
    /// <summary>
    /// Set the internal data being stored 
    /// in this class wrapper.
    /// </summary>
    /// <param="Item">Item.</param>
    KittyForceinline
    KittyConstexpr
    KittyVoid KittySetRaw(MeowKittyKatT Item) KittyNoexcept
    {MeowRaw = (Item);}
};
 
#endif

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
///
/// KittyKatTable.hpp
///
 
#ifndef KITTYKATTABLE_GUARD
#define KITTYKATTABLE_GUARD
 
#include "KittyKatWhisker.hpp"
 
/// Standart STL includes.
#include <unordered_map>
 
 
/// <summary>
/// See the comments in an KittyKatWhisker class as it's the same.
/// </summary>
template<typename KittyAssignerT,
         typename KittyT>
class KittyKatTable
{
    /// <summary>
    /// Hash table entry class.
    /// </summary>
    std::unordered_map<KittyAssignerT, KittyT> MeowWhisker;
 
public:
 
    /// <summary>
    /// Constructs a KittyKatTable and inserts a key-item
    /// pair using the provided iterators.
    /// </summary>
    template<typename Iterator>
    KittyKatTable(Iterator Key, Iterator Item)
    {KittyInsert(Key, Item);}
 
    /// <summary>
    /// Deep clone of the hash table class. 
    /// </summary>
    /// <param="MeowAnother">The instance of a hash table class."</param>
    explicit
    KittyKatTable(KittyKatTable& MeowWhiskerAnother) :
        MeowWhisker(MeowWhiskerAnother.MeowWhisker)
    {}
 
    /// <summary>
    /// Initialize the hash table class with an initializer list.
    /// </summary>
    /// <param="MeowIL">Initializer list."</param>
    explicit
    KittyKatTable(std::initializer_list<std::pair<KittyAssignerT, KittyT>> MeowIL)
    {
        if (MeowIL.size())
        {MeowWhisker(MeowIL);}
    }
 
    /// <summary>
    /// Initialize the hash table class with an std::vector<T>.
    /// </summary>
    /// <param="MeowVec">std::vector<T>."</param>
    explicit
    KittyKatTable(std::vector<std::pair<KittyAssignerT, KittyT>> MeowVec)  
    {
        if (MeowVec.size())
        {MeowWhisker(MeowVec);}
    }
 
    /// <summary>
    /// Check on equality.
    /// </summary>
    /// <param="MeowWhiskerAnother">Another class instance."</param>
    KittyForceinline
    KittyBoolean
    KittyEquals(KittyKatTable<KittyAssignerT, KittyT> MeowWhiskerAnother) noexcept
    {
        if (MeowWhisker.size() != MeowWhiskerAnother.size())
        {
            return (false);
        }
 
        return (true);
    }
 
    /// <summary>
    /// Check if hash table class has at least one entry.
    /// </summary>
    /// <returns>True in case non empty.</returns>
    KittyForceinline
    KittyBoolean
    KittyEmpty() noexcept
    {
        if (MeowWhisker.empty())
        {return (true);}
 
        return (false);
    }
 
    /// Check if hash table class has a key provided.
    /// </summary>
    /// <returns>True in case found.</returns>
    KittyForceinline
    KittyBoolean
    KittyHasKey(KittyAssignerT Key) noexcept
    {
        if (MeowWhisker.find(Key) != MeowWhisker.end())
        {return (true);}
 
        return (false);
    }
 
    /// <summary>
    /// Inser into an hash table class.
    /// </summary>
    /// <param="Key"> Key to insert."</param>
    /// <param="Item">Item."</param>
    KittyForceinline
    KittyVoid
    KittyInsert(KittyAssignerT Key, KittyT Item) noexcept
    {
        if (!KittyEmpty())
        {MeowWhisker.insert(Key, Item);}
    }
    
    /// <summary>
    /// Clear the hash table class.
    /// </summary>
    KittyForceinline
    KittyVoid
    Clear() noexcept
    {MeowWhisker.clear();}
 
    /// <summary>
    /// Erase the provided key in the hash table class.
    /// </summary>
    /// <param="Key">Key to erase."</param>
    KittyForceinline
    KittyVoid
    KittyErase(KittyAssignerT Key) noexcept
    {MeowWhisker.erase(Key);}
};
 
#endif
Добавлено через 1 минуту
Переписал ноду для односвязного списка:


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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
////
/// KittyKatXelorNode.hpp
///
 
#ifndef KITTYKATXELORNODE_GUARD
#define KITTYKATXELORNODE_GUARD
 
#include "../KittyKatRWXDef/KittyKatRWXDef.hpp"
 
 
/// <summary>
/// Macro to enforce inlining of a function, 
/// replacing the standard `forceinline`.
/// </summary>
#define MEOWXELOR_FORCEINLINE __forceinline
 
/// <summary>
/// Macro to replace standard `constexpr` with a
/// custom implementation or alias.    
/// </summary>
#define MEOWXELOR_CONSTEXPR     constexpr
 
 
template<typename XelorT>
class KittyKatXelorNode
{
    /// <summary>
    /// Owning pointer to a `KittyKatXelorNode<XelorT>` class insance.
    /// </summary>
    using KittyKatXelorNodeStarT = KittyKatXelorNode<XelorT>*;
 
    /// <summary>
    /// // A raw pointer to a dynamically allocated 
    /// `KittyKatXelorNode<XelorT>` object.  
    /// </summary> 
    KittyKatXelorNodeStarT MEOWXelorNext;
 
    /// <summary>
    /// The data value stored within this item. 
    /// </summary>
    XelorT MEOWXelorRef;
 
public:
 
       /// <summary>
       /// Initializes a new XelorNode class instance with default values:
       /// XelorNext set to nullptr (indicating no next node).
       /// XelorRef set to 0 (unsigned zero initialization).
       /// </summary>
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       KittyKatXelorNode() : MEOWXelorNext {nullptr}, MEOWXelorRef {0u}{}
 
       /// <summary>
       /// Initializes a new XelorNode class with provided value.
       /// </summary>
       /// <KittyParam="Item">Item to set.</KittyParam>
       explicit
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       KittyKatXelorNode(XelorT Item) : MEOWXelorNext {nullptr}, MEOWXelorRef {Item}{}
 
       /// <summary>
       /// Initializes a new XelorNode class with the proveded item, 
       /// and sets the next item of the class instance.
       /// </summary>
       /// <KittyParam="Item">       Item to set (item setter).</KittyParam>
       /// <KittyParam="FollowNext"> Next item to follow.</KittyParam>
       explicit
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       KittyKatXelorNode(XelorT Item, KittyKatXelorNodeStarT FollowNext) noexcept
       {
           if (FollowNext != (nullptr) &&
               Item       > (0u))
           {
               KittyKatXelorNodeStarT FollowNextInternal = {FollowNext};
               MEOWXelorRef = {Item};
           }
       }
 
       /// <summary>
       /// Retrive the value of a linked list (getter function).
       /// </summary>
       /// <returns>Node data.</returns>
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       XelorT KittyT() noexcept
       {
           /// <summary>
           /// Return the value's data (getter function).
           /// </summary>
           return (MEOWXelorRef);
       }
 
       /// <summary>
       /// Sets the item for this linked list via internal function (setter).
       /// </summary>
       /// <KittyParam="Item">Item to set.</KittyParam>
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       KittyVoid KittyNextSetter(XelorT Item) noexcept
       {
           /// <summary>
           /// Set the value's data (setter function).
           /// </summary>
           MEOWXelorRef = (Item);
       }
 
       /// <summary>
       /// Get the next node which does followed by this node's instance.
       /// </summary>
       /// <returns>Next node followed by this node instance.</returns>
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       KittyKatXelorNodeStarT KittyNextGetter() noexcept
       {
           /// <summary>
           /// Next node, followed by this node instance.
           /// </summary>
           return (MEOWXelorNext);
       }
 
       /// <summary>
       /// Set next node followed by this node instance.
       /// </summary>
       /// <KittyParam="Next">Next node.</KittyParam>
       MEOWXELOR_FORCEINLINE
       MEOWXELOR_CONSTEXPR
       KittyVoid KittyNextSetter(KittyKatXelorNodeStarT MeowNext) noexcept
       {
           /// <summary>
           /// Sets the item in this linked list class.
           /// </summary>
           MEOWXelorNext = (MeowNext);
       }         
};
 
#endif
Добавлено через 5 минут
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
///
/// KittyKatRWXDef.hpp
/// 
 
#ifndef KITTYKATRWXDEF_GUARD
#define KITTYKATRWXDEF_GUARD
 
 
/// <summary>
/// Used to force inlining functions. 
/// <summary>
#define KittyForceinline __forceinline
 
/// <summary>
/// The compile time constant expression.
/// </summary>
#define KittyConstexpr  constexpr
 
/// <summary>
/// Represents a void pointer.
/// </summary>
#define KittyNullptr    nullptr
 
/// <summary>
/// No except.
/// </summary>
#define KittyNoexcept   noexcept
 
/// <summary>
/// Constant locker.
/// </summary>
#define KittyConst      const
 
/// <summary>
/// Void type.
/// </summary>  
#define KittyVoid       void
 
/// <summary>
/// Boolean type.
/// </summary>
#define KittyBoolean    bool 
#endif
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
19.07.2025, 13:57  [ТС]
Динамический массив (финальная версия).
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.07.2025, 14:13
Цитата Сообщение от Sneakzzz Посмотреть сообщение
Динамический массив (финальная версия).
Практическое руководство: "Как сделать код абсолютно нечитаемым".
to be continued
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
19.07.2025, 16:13  [ТС]
Потихоньку переписываю односвязный список (ссылка).
0
19.07.2025, 17:54

Не по теме:

Наталья8, у тебя ж было 20 баллов нарушения. Как минимум, 20 дней оно действует. Но вижу, что нарушения больше нет. Признайся, Миша твой друг?

0
19.07.2025, 18:51

Не по теме:

Я хорошо вас всех развлекаю...
Соответственно полезен для форума.
А времена сейчас тяжёлые...
Я вообще уникален... Настоящий живой маргинал...

0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
19.07.2025, 19:03
Кино стараюсь бросать правильное. Законы не нарушаю..

final_file(2).mp4
Про пути в программе.
Искал тему, где то была тема. Не нашёл.
Не всё ли равно. Вот создавал папку.
А то приходиться создавать в ручную... Если что...
0
 Аватар для Наталья8
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,242
19.07.2025, 22:43
Чаще всего вот такие приёмы програмирования... На форуме такое редко попадаеться.
Работа с путями...

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
//  ============================= < КНОПКА РАБОТА С ПАПКОЙ > ===========================
            if (no_folder_sprite.getGlobalBounds().contains(pos.x, pos.y))//  при наезде зеленеет при отьезде белеет
            {
                no_folder_sprite.setColor(sf::Color(50, 150, 50));//красим КНОПКУ в невьебенный 
                
                //------------------                
                if (event.type == Event::MouseButtonPressed)//если нажата клавиша мыши     
                    if (event.key.code == Mouse::Left)
                    {
                        char tmp2[32]{};// Сохраним входной
                        strcpy(tmp2, strrchr(in_filename, '\\'));
                        *(strrchr(in_filename, L'\\')) = '\0';// Это папку удалять....
                        strcat(in_filename, "\\FOLD_FOR_CLIPS");
                        
                        if (no_folder)
                        {
                            if (cool_deleter(in_filename)) {// Это папку удалять....
                                char tmp[32]{};
                                strcpy(tmp, strrchr(out_filename, '\\'));
                                *(strrchr(out_filename, L'\\')) = '\0';
                                *(strrchr(out_filename, L'\\')) = '\0';
                                strcat(out_filename, tmp);
                                no_folder = false;
                            }
                        }
                        else if (!no_folder && _mkdir(in_filename) == 0) {
                            char tmp[32]{};
                            strcpy(tmp, strrchr(out_filename, '\\'));
                            *(strrchr(out_filename, L'\\')) = '\0';
                            strcat(out_filename, "\\FOLD_FOR_CLIPS");
                            strcat(out_filename, tmp);
                            no_folder = true;
                        }
                *(strrchr(in_filename, L'\\')) = '\0';//Восстановим входной ....
                strcat(in_filename, tmp2);
            }
                //printf("\n 2014 %s\n", in_filename);
                //printf(" 2014 %s\n", out_filename);
            }
            else no_folder_sprite.setColor(Color::White);// Кнопка no_muxung белеет
Кнопка триггер - создание/ удаление...(В корзину... Бережно.) Работа... Или в папку, или напрямую..
Создал папку, в неё отработал, и хренак, в корзину... Вот такие пути....

Добавлено через 3 часа 32 минуты
А насчёт записей в блоге....
Извиняюсь... Какая зарплата, такая и работа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2025, 22:43

Решил начинающий программист Вася Битиков ланшафтным дизайном заняться - оформить бабушкину клумбу оригинальным узором,
Решил начинающий программист Вася Битиков ланшафтным дизайном заняться - оформить бабушкину клумбу оригинальным узором, уж очень бабушка...

Описания алгоритмов и структур данных
У меня курсовая работа, к ней проект БД на языке Access препод сказал чтоб я добавила описания алгоритмов и структуров данных. в инете...

Программирование алгоритмов с использованием динамических структур данных
Помогите.Создать приложение, которое осуществляет ввод значений элементов двумерного массива n-го порядка с клавиатуры, изменяет порядок...

Разработка алгоритмов и программ с использованием динамических структур данных
Перевернуть список L, то есть изменить ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке. Надо...

Разработка и отладка алгоритмов и программ с использованием структур данных.
народ , помогите переделать задачу под это условие , плиз оч нужно , приведённый мною код это аналогичная задача но под другое условие ))) ...


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

Или воспользуйтесь поиском по форуму:
95
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru