Russian Qt Forum
Май 06, 2024, 02:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Как замостить массив значениями меньшего по размеру массива  (Прочитано 2564 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Декабрь 11, 2014, 10:39 »

Привет, друзья!
Имеется ли библиотечная функция, которая позволит провернуть следующее?
Код
C++ (Qt)
float src[3] = {1, 2, 3};
float dest[90];
doWork(src, dest, ...); // dest = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
« Последнее редактирование: Декабрь 11, 2014, 14:11 от __Heaven__ » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Декабрь 11, 2014, 12:18 »

Пока работаю так:
Код
C++ (Qt)
float* srcBegin = src;
while(src != srcEnd)
{
   *dest++ = *src++;
   src -= (src - srcBegin) / 3 * 3;
}
 
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Декабрь 11, 2014, 12:26 »

Код
C++ (Qt)
void FillPattern( float * dst, size_t numDst, const float * src, size_t numSrc )
{
for (size_t i = 0; i < numDst; ++i)
 dst[i] = src[i % numSrc];
}
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Декабрь 11, 2014, 13:41 »

Код
C++ (Qt)
void FillPattern( float * dst, size_t numDst, const float * src, size_t numSrc )
{
for (size_t i = 0; i < numDst; ++i)
 dst[i] = src[i % numSrc];
}
Спасибо. Оптимальнее в 2-3 раза.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.118 секунд. Запросов: 23.