c++ - LinkedList using initializer_list -
so, i'm trying initialize linkedlist class using initializer_list.
template<typename t> sortedlist<t>::sortedlist(initializer_list<t> e){ head_= new node<t>(*e.begin()); long intcheck = 0; t old; (auto x : e){ if(intcheck > 0){ node<t>* curr = new node<t>(old); if(head_ == curr){ head_->next_ = new node<t>(x); } curr->next_ = new node<t>(x); } old = x; intcheck = 1; } }
i seg fault when trying print head_->next_ (nothing wrong print function)
i'm assuming want sortedlist
sorted. if so, accomplish goal. bails out if initializer_list
empty, still leaves object in rational state.
template<typename t> sortedlist<t>::sortedlist(initializer_list<t> e) : head_{nullptr} { if (e.size() == 0) return; auto = e.begin(); (head_ = new node<t>(*it); != e.end(); ++it) { node<t> *n = new node<t>(*it); node<t> *curr; (curr = head_; curr->next_ && curr->next_->data_ < *it; curr = curr->next_) continue; if (*it < curr->data_) { n->next_ = curr; head_ = n; } else { n->next_ = curr->next_; curr->next_ = n; } } }
for completeness, here's destructor used test:
template<typename t> sortedlist<t>::~sortedlist() { while (head_->next_) { node<t> *t = head_->next_; head_->next_ = t->next_; delete t; } delete head_; }
Comments
Post a Comment