индексация в стиле matlab массива C ++
Я хотел бы знать, какова наиболее эффективная реализация на языке c ++ следующей идиомы matlab.
Предположим, у меня есть 3 вектора в matlab, x, y и idx.
x = [13,2,5.5,22,107]
y = [-3,100,200]
idx = [1,2,5]
Я хочу заменить позиции 1, 2 и 5 x на содержимое y. В матлаб я делаю
x[idx] = y
Каков наилучший способ сделать это в C ++?