У меня есть такой код:
for (size_t i = 0; i < m_particleVertex.size(); i++)
{
auto actualPosition = m_particleVertex()[i].position;
...
m_particleAttributes[i].setDirection(newDirection);
}
И мне интересно, можно ли здесь использовать STL? Я хочу попробовать сделать это с некоторым современным C ++. Диапазон для l oop не является опцией из-за различных типов m_particleVertex и m_particleAttributes. Так что да ... я думаю об использовании функции for_each, но я не знаю, возможно ли это без каких-либо дополнительных контейнеров. Я написал это:
std::for_each(m_particleAttributes.begin(), m_particleAttributes.end(), [&](ParticleSettings& particleAttribute, sf::Vertex& particleVertex) mutable {
auto actualPosition = particleVertex.position;
...
particleAttribute.setDirection(newDirection);
});
и я знаю, что я не могу этого сделать, поэтому я думаю, что я должен сделать что-то вроде этого:
std::vector<vector2f> temp;
std::for_each(m_particleAttributes.begin(), m_particleAttributes.end(), [&](ParticleSettings& particleAttribute) mutable { temp.push_back(particleVertex.position);}
и чем делать операции для каждого элемент вектора, и проделайте то же самое с методом частицAttribute.setDirection (). Я не знаю, если это правильная идея, эффективная идея, и есть ли что-то лучше использовать? Любые идеи? Что ты думаешь? Здесь можно использовать STL или нет?