C++ Инициализатор собственных коллекций

247
12 января 2017, 05:34

Есть класс Array<T>.

Пример использования:

Array<string> a;
a.add("test");
a.add("...");
//...

Как мне реализовать вариант инициализации

Array<string> a = {"str1", "str2"};

?

Answer 1

Взято здесь http://www.bogotobogo.com/cplusplus/C11/C11_initializer_list.php

В целом, Вам нужно написать что то такое

Array(const std::initializer_list<T> &v) {
    for (auto itm : v) {
        add(itm);
    }
}

(так как у Вас там шаблоны, нужно это учесть. Но Вашего кода нет, поэтому и нет гарантии на компиляцию).

Answer 2

Можете поступить так-же как разработчики stl в std::array

template<class T, int size>
class Array{
public:
    T data[size];
    //...
};
Array<std::string, 10> arr = {"1", "2", "3"};
READ ALSO
Проверка существования объекта

Проверка существования объекта

Вот что подставить там где знаки вопроса?

275
назначения адреса функции в IDA PRO

назначения адреса функции в IDA PRO

есть ли возможность назначить адрес функции в IDA PRO? имеется такая функция

302
Запрос с 4-х уровневой выборкой

Запрос с 4-х уровневой выборкой

Есть 4 таблицы связанные между собой по id иерархически юзеры->телефоны->сайты->налог и есть входящий массив данных в котором присутствует...

287
Парсер курсов валют в базу

Парсер курсов валют в базу

Ситуация такая - вот код парсера:

348