Вы можете использовать vector.insert()
и список инициализаторов для сокращения l oop:
std::vector<float> transformVectorOfVec3ToVectorofFloats(const std::vector<vector3> & p_vec3Vector)
{
std::vector<float> l_floatVector;
for(auto m_vec3 : p_vec3Vector)
l_floatVector.insert(l_floatVector.end(), {m_vec3.x,, m_vec3.y, m_vec3.z});
return l_floatVector;
}
Вы также можете использовать std::accumulate
для удаления всех рукописных циклов:
std::vector<float> transformVectorOfVec3ToVectorofFloats(const std::vector<vector3> & p_vec3Vector)
{
return std::accumulate(p_vec3Vector.begin(), p_vec3Vector.end(),
std::vector<float>(), []
(std::vector<float>& total, const vector3& v)
{ total.insert(total.end(), {v.x, v.y, v.z}); return total;});
}