0

I am creating a custom Node class that holds a number and a pointer to another node. I am writing a function called AssignArray which takes an array and creates a linked list of nodes from the numbers in the array. I am passing an array to the AssignArray function, and need to remove the first element from the array with each new recursive call of the function. I am trying to do that by copying the initial array into a smaller array, and then passing the smaller array into the recursive call of the AssignArray function. I am getting an error when I try to copy the array. Here is my .hpp file:



class Node {

    Node* node;
    int num;

    public:
    Node(int new_num);
    void AssignNode(Node* new_end);
    Node* AssignArray(int list[]);

};

Here is my node class file:

#include <iostream>
#include "node.hpp"

Node::Node(int new_num) {
    num = new_num;
}

void Node::AssignNode(Node* new_node) {
    node = new_node;
}

Node* Node::AssignArray(int list[]) {
    if (sizeof(list) == 0) {
        return 0;
    }
    else {

        Node new_node(list[0]);
        int new_list[sizeof(list)-1];
        std::copy(1, std::end(list), std::begin(new_list));
        new_node.AssignNode(new_node.AssignArray(new_list));
        return &new_node;

    }

}

My IDE gives me an error which says "No instance of overloaded function "std::end" matches the argument list -- argument types are (int *)

Thanks in advance for the help!

Matt B.
  • 331
  • 3
  • 12

0 Answers0