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



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

Итерация TArray 
Вы  можете  итерировать  (проходить)  элементы  переменной  TArray  двумя 
способами: либо используя целочисленную индексацию, либо используя итератор. 
Я покажу вам оба этих способа здесь. 
Ваниль цикла for и запись в квадратных скобках 
Использование  целых  чисел  для  индексации  элементов  массива  иногда 
называется  “ваниль”  цикла  for.  Доступ  к  элементам  массива  можно  получить, 
используя array[ index ], где индекс это номерная позиция элемента в массиве: 
for( int index = 0; index < array.Num(); index++ ) 

// 
выводим элемент массива на экран, применяя сообщение отладки 
GEngine->AddOnScreenDebugMessage( index, 30.f, FColor::Red, 
FString::FromInt( array[ index ] ) ); 
}
 
Итераторы 
Вы также можете использовать итератор, чтобы проходить по элементам массива 
один за другим, как показано в следующем коде: 
int count = 0; // 
отслеживаем номерной индекс в массиве 
for( TArray::TIterator it = array.CreateIterator(); it; ++it ) 

GEngine->AddOnScreenDebugMessage( count++, 30.f, FColor::Red, 
FString::FromInt( *it ) ); 
}
 
Итераторы  являются  указателями  в  массиве.  Итераторы  могут  использоваться, 
чтобы  просматривать  или  изменять  значения  внутри  массива.  Пример  итератора 
показан на следующем изображении:   


189 | 
С т р а н и ц а
 
 
 
Суть итератора: это внешний объект, который может заглядывать и просматривать 
значения  массива.  Выполнение  ++  продвигает  итератор  к  просмотру  следующего 
элемента.  
Итератор должен подходить для собрания элементов, через которые он проходит. 
Чтобы  пройти  через  переменную  TArray,  вам  нужен  тип  итератора 
TArray::TIterator.  
Мы используем знак *, чтобы смотреть значение позади итератора. В предыдущем 
коде,  мы  использовали  (*it),  чтобы  получить  целочисленное  значение  от 
итератора.  Это  называется  разыменование.  Разыменование  итератора  означает 
посмотреть его значение.  
Операция  ++it,  которая  происходит  в  конце  каждой  итерации  цикла  for, 
инкрементирует итератор, продвигая его к месту следующего элемента в списке.  
Введите  код  в  программу  и  теперь  проверьте,  как  она  работает.  Вот  пример 
программы, которую мы создавали до этого, используя 
TArray 
(всё в конструкторе 
ATArraysGameMode::ATArraysGameMode()):  
ATArraysGameMode::ATArraysGameMode(const class 
FPostConstructInitializeProperties& PCIP) : Super(PCIP) 

TArray array; 
array.Add( 1 ); 
array.Add( 10 ); 
array.Add( 5 ); 
array.Add( 20 ); 
array.Insert( 9, 0 );// 
ставим 9 спереди 
array.Insert( 30, 2 );// 
ставим 30 на индекс 2 
if( GEngine ) 

for( int index = 0; index < array.Num(); index++ ) 

GEngine->AddOnScreenDebugMessage( index, 30.f, FColor::Red, 
FString::FromInt( array[ index ] ) ); 


}
 


190 | 
С т р а н и ц а
 
 
Вывод предыдущего кода, показан на следующем скриншоте: 
   


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




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

    Басты бет