Код: Выделить всё
struct Thing
{
std::vector integers;
std::list strings;
template
Thing(InputIt start, InputIt end): integers(start, end) {}
};
< /code>
или, я могу сделать конструкторы, которые принимают конкретный тип итератора контейнеров, которые я использую: < /p>
struct Thing
{
std::vector integers;
std::list strings;
Thing(std::vector::iterator start, std::vector::iterator end): integers(start, end) {}
Thing(std::list::iterator start, std::list::iterator end): strings(start, end) {}
};
Я представляю, как некоторые типы Intinputit и StringInputit , которые могут обратиться только к int или std :: String Itreator
Код: Выделить всё
struct Thing
{
std::vector integers;
std::list strings;
Thing(IntInputIt start, IntInputIt end): integers(start, end) {}
Thing(StringInputIt start, StringInputIt end): strings(start, end) {}
};
< /code>
Тогда я мог бы инициализировать свою структуру из любого вида списка: < /p>
std::vector ints1({1,2,3});
std::list ints2({4,5,6});
auto thing1 = Thing(ints1.begin(), ints1.end());
auto thing2 = Thing(ints2.begin(), ints2.end());
Подробнее здесь: https://stackoverflow.com/questions/796 ... cific-type
Мобильная версия