Если вам нужно перебрать их, ответ очевиден.
Если они не меняются, и вы можете управлять сложностью, тогда первый вариант подойдет. Второй может быть более читабельным (если вы выбираете добрые имена).
Вы также можете написать класс, который содержит или содержит ссылку на вектор. В этом случае вы можете воспользоваться преимуществами обоих.
Вы также можете использовать библиотеку Boost.tuple.
#include <boost/tuple/tuple.hpp>
boost::tuple<int,int,int,int> position;
и доступ к ним как:
position.get<N>(); // where N is in 1,2,3,4