Russian Qt Forum

Программирование => С/C++ => Тема начата: __Heaven__ от Декабрь 11, 2014, 10:39



Название: [Решено] Как замостить массив значениями меньшего по размеру массива
Отправлено: __Heaven__ от Декабрь 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


Название: Re: Как замостить массив значениями меньшег&#
Отправлено: __Heaven__ от Декабрь 11, 2014, 12:18
Пока работаю так:
Код
C++ (Qt)
float* srcBegin = src;
while(src != srcEnd)
{
   *dest++ = *src++;
   src -= (src - srcBegin) / 3 * 3;
}
 


Название: Re: Как замостить массив значениями меньшего по размеру массива
Отправлено: Igors от Декабрь 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];
}


Название: Re: Как замостить массив значениями меньшего по размеру массива
Отправлено: __Heaven__ от Декабрь 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 раза.