Изучаем С++ создавая игры в ue4 Уилльям Шериф Изучайте программирование С++ с интересным применением реально мира, что позволит вам создавать ваши собственные игры!



Pdf көрінісі
бет182/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   178   179   180   181   182   183   184   185   ...   252
Байланысты:
аа

 
 
 
 
 
 
 


185 | 
С т р а н и ц а
 
 
Глава 9. Шаблоны и обычно 
используемые контейнеры. 
В  Главе  7.  Динамическое  распределение  памяти,  мы  говорили  о  том,  как  вы 
будете использовать динамическое распределение памяти, если вы хотите создать 
новый  массив,  размер  которого  неизвестен  в  момент  компиляции.  Форма 
динамического распределения памяти такова 
int * array = new int[ number_of_elements ]
.   
Вы  также  видите  это  динамическое  распределение,  использует  ключевое  слово 
new[]
,  требующее  от  вас  позже  вызов 
delete[]
  в  массиве,  иначе  у  вас  будет  утечка 
памяти. Такое управление памятью это тяжёлая работа.  
Есть  ли  способ  создать  массив  динамического  размера  и  чтобы  память 
автоматически управлялась для вас самим С++? Ответ да. Есть объектные типы С++ 
(называемый  контейнеры),  которые  управляют  динамическим  распределением  и 
перемещением  памяти  автоматически.  UE4  предоставляет  пару  типов  для 
хранения ваших данных в динамически изменяемых собраниях. 
Есть  две  разные  группы  шаблонных  контейнеров.  Есть  семья  UE4  контейнеров 
(начинающаяся  с  Т*)  и  семья  контейнеров  Стандартной  библиотеки  шаблонов 
(Standard  Template  Library)  (STL)  С++.  И  есть  некоторые  отличия  между 
контейнерами  UE4  и  контейнерами  STL,  но  отличия  небольшие.  Наборы 
контейнеров UE4 написаны с выполнением игры в уме. Контейнеры STL C++ также 
работают  хорошо  и  их  интерфейсы  немного  более  последовательны 
(последовательность в API это то, что вы предпочли бы). Какой набор контейнеров 
использовать,  решать  вам.  Однако  вам  рекомендуется  использовать  набор 
контейнеров  UE4,  так  как  это  гарантирует,  что  у  вас  не  возникнет  проблем  с 
кроссплатформеностью, когда вы попробуете компилировать ваш код. 


Достарыңызбен бөлісу:
1   ...   178   179   180   181   182   183   184   185   ...   252




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет