У меня есть объект, который я хочу путешествовать в непрерывном цикле в игре. У меня есть ряд координат в std::vector
, который я хочу использовать в качестве путевых точек.
Есть ли способ сделать циклический std::vector<T>::iterator
(также известный как циркулятор)?
Лучшее, что я могу придумать, состоит в том, чтобы иметь два итератора, а затем всякий раз, когда первый итератор исчерпан, назначьте ему значение второго (которое не будет использоваться для чего-либо еще), но я даже не уверен, что он будет work - будет ли оператор присваивания копировать все, что использует итератор, чтобы удерживать индекс, или он будет просто ссылаться (и, следовательно, будет бесполезен после второго раунда)?
Я хочу, чтобы объект вел путевую точку навсегда (если только он не уничтожен, но этого не происходит в этом методе), но итератор будет вызываться только один раз для каждого кадра и должен возвращаться, чтобы я мог обновлять другие объекты в игре.
Решение должно работать с компилятором gcc и microsoft (если его невозможно записать в стандартном С++).