Похоже, вы пытаетесь построить vector
из vector<int>
, используя только vector<int>
.Не вижу, как объявляется moves
, но на основе остальной части кода, я думаю, что это будет работать.
std::vector<std::vector <int > > toReturn;
toReturn.push_back(moves);
Не вижу значения при использовании vector
из vector
s здесь, но, возможно, это частичная выборка.
Кроме того, передача в доске по ссылке, а не по значению была бы более эффективной, поскольку это позволяет избежать копирования всего объекта.Вы не изменяете его, так что ссылка const
лучше.
std::vector< std::vector<int> > takeaway::generateMoves(
const std::vector<int>& currBoard )
Возврат по значению (т.е. вектор <вектор как возвращаемое значение), вероятно, в порядке, так как этот код, вероятно, будет оптимизирован, чтобы избежать копирования<code>toReturn в соответствии с NRVO .
Альтернативой может быть передача неконстантной ссылки на требуемую структуру, которая должна быть пустой при входе, чтобы соответствовать текущей логике:
void takeaway::generateMoves(
const std::vector<int>& currBoard, std::vector< std::vector<int> >& toReturn )