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


STL C++ версии часто используемых



Pdf көрінісі
бет190/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   186   187   188   189   190   191   192   193   ...   252
STL C++ версии часто используемых 
контейнеров 
Я  хочу  рассказать  о  паре  версий  контейнеров  STL  C++.  STL  –  это  стандартная 
библиотека шаблонов (standard template library), которая работает с большинством 
компиляторов  С++.  Причина  по  которой  я  хочу  рассказать  об  этих  версиях  STL,  в 
том,  что  их  поведение  отличается  от  UE4  версий  тех  же  контейнеров.  В  каких-то 
направлениях  они  ведут  себя  очень  хорошо,  но  игровые  программисты  часто 
жалуются,  что  у  STL  есть  проблемы  с  производительностью.  В  частности,  я  хочу 
затронуть STL контейнеры set и map.  
Примечание 
Если  вам  нравится  интерфейс  STL,  но  вы  хотите  лучшей  производительности,  то 
есть  хорошо  известная  реализация  библиотеки  STL  от  Electronic  Arts,  называемая 
EASTL,  которую  вы  можете  использовать.  Она  предоставляет  тот  же  функционал, 


195 | 
С т р а н и ц а
 
 
что  и  STL,  но  осуществлена  с  лучшей  производительностью  (в  основном  делая 
такие  вещи  как,  удаление  проверки  границ).  Она  доступна  на  GitHub 
https://github.com/paulhodge/EASTL
.    
Набор STL C++ 
Набор  –  set  С++  это  связка  предметов,  которые  уникальны  и  отсортированы. 
Хорошая  характеристика  STL  set,  то  что  он  хранит  набор  элементов 
отсортированным. Быстрый и грязный способ отсортировать группу значений, это 
засунуть их в один набор. set позаботится о сортировке за вас.  
Мы  можем  вернуться  к  простому  приложению  консоли  С++  для  использования 
наборов.  Чтобы  использовать  набор  STL  C++,  вам  надо  включить  ,  как 
показано здесь: 
#include  
#include  
using namespace std; 
int main() 

set intSet; 
intSet.insert( 7 ); 
intSet.insert( 7 ); 
intSet.insert( 8 ); 
intSet.insert( 1 ); 
for( set::iterator it = intSet.begin(); it != intSet.end(); ++it ) 

    cout << *it << endl; 

}
 
 
Вот вывод предыдущего кода: 


8
 
Дубликат  7  отфильтрован,  и  элементы  содержаться  в  возрастающем  порядке 
внутри set. Способ, которым мы выполняем итерацию элементов контейнера  STL, 
сходен  с  итерацией  для  массива  UE4  TSet.  Функция  intSet.begin()  возвращает 
итератор, который указывает в начало intSet.  
Условие  для  остановки  итератора,  это когда  it  становится  intSet.end(),  и  на  самом 
деле  это  на  одну  позицию  дальше  конца  набора,  как  показано  на  следующем 
изображении: 


196 | 
С т р а н и ц а
 
 
 


Достарыңызбен бөлісу:
1   ...   186   187   188   189   190   191   192   193   ...   252




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

    Басты бет