void GridPerimToArray(const Array2D<U> &grid, std::vector<U> &vec){ assert(vec.size()==0); //Ensure receiving array is empty std::vector<U> vec2copy; vec2copy = grid.getRowData(0); //Top vec.insert(vec.end(),vec2copy.begin(),vec2copy.end()); vec2copy = grid.getColData(grid.width()-1); //Right vec.insert(vec.end(),vec2copy.begin()+1,vec2copy.end()); vec2copy = grid.getRowData(grid.height()-1); //Bottom vec.insert(vec.end(),vec2copy.begin(),vec2copy.end()-1); vec2copy = grid.getColData(0); //Left vec.insert(vec.end(),vec2copy.begin()+1,vec2copy.end()-1); }