No, that would be a 2d array.
In fact, the array of structs would be a vector, a 1 d array.
Further, the "sort" and "do" functions don't care how the data are stored external to them, as long as they are presented with the appropriate vector, so your first rewrite could use the existing separate vectors.