проблема в том, что я не знаю, удалит ли он старые значения вектора.
Вектор гарантированно будет пустым после того, как он был перемещен из.
customers=std::move(other.customers);
Вместо того, чтобы по умолчанию создавать элемент, а затем перемещать и назначать его, лучше перемещать-создавать элемент непосредственно в списке инициализации элемента:
OpenTable::OpenTable(OpenTable&& other) : ..., customers(std::move(other.customers))
Хотявыглядит так, будто ваш конструктор не делает ничего отличного от неявного конструктора перемещения, поэтому вы можете использовать вместо него:
OpenTable::OpenTable(OpenTable&&) = default;
Еще лучше, в зависимости от остальной части вашего класса, конструктор перемещения можетбыть объявленным неявно, так что вам может даже не понадобиться это объявление по умолчанию.