Skip to main content
  1. Posts/

Initializer-List constructors

·120 words·1 min·
AJ
Author
AJ

So in modern C++ we have initializer-lists ({}-lists). I was reading about them because I was interested in how to add a {}-list constructor to my own classes. It turns out it’s actually really easy!

I’ll use a Singly Linked List as an example:

#include <initializer_list>

template <typename T>
LinkedList<T>::LinkedList(std::initializer_list<T> lst) : root{nullptr}
{
    for (auto i = std::begin(lst); i != std::end(lst); ++i)
        this->push_back(*i);
    this->size_ = lst.size();
}

So here we have a template LinkedList class {}-list constructor. We use iterators to get the pointer to the data in the {}-list, and then we dereference the pointer when we push it to the LinkedList.

And we can use it like this:

LinkedList<int> list{1, 2, 3, 4, 5}

Easy, isn’t it?

Related

Setting up GCC on Windows for C and C++ development.
·741 words·4 mins