objects[0]. Ничего шакального.
vector<Object> objects;
objects.emplace_back("models/tree.png", 600, 1000, 93, 178);
objects.emplace_back("models/tree.png", 400, 1000, 93, 178);
window.draw(objects[0].sprite);
objects, сколько нужно, а вектор подстроится.
const после всех методов, кроме тех, где нужно менять текущий объект. Объявлять все параметры функций const&, кроме случаев, когда мы можем объяснить, зачем нам нужно их менять. Объявлять все локальные переменные const, кроме тех, которые мы хотим менять.
vector<vector<int>>
std::list, с копированием всех данных. Это копирование и один-то раз делать жалко.