Код: Выделить всё
stl::vector v{1, 2, 3};Конструктор вектора (есть также конструктор по умолчанию который просто устанавливает все в 0):
Код: Выделить всё
vector(initializer_list init) : m_capacity(init.size()), m_size(m_capacity), m_data(nullptr)
{
this->m_data = (T *)malloc(m_size * sizeof(T));
if (this->m_data == nullptr)
throw "malloc: Couldn't allocate memory!\n";
memcpy(m_data, init.begin(), m_size * sizeof(T));
}
Код: Выделить всё
template class initializer_list
{
public:
typedef const T* const_iterator;
typedef T* iterator;
private:
iterator m_begin;
size_t m_size;
constexpr initializer_list(const_iterator it, size_t size) noexcept : m_begin(it), m_size(size) { }
public:
constexpr initializer_list() noexcept : m_begin(nullptr), m_size(0) { }
constexpr const_iterator begin() const { return m_begin; }
constexpr const_iterator begin(initializer_list init) noexcept { return init.begin(); }
constexpr const_iterator end() const { return m_begin + m_size; }
constexpr const_iterator end(initializer_list init) noexcept { return init.end(); }
constexpr size_t size() const { return m_size; }
};
Код: Выделить всё
no instance of constructor "stl::vector::vector [with T=int]" matches the argument listПодробнее здесь: https://stackoverflow.com/questions/787 ... t-a-vector