Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: STL. Инициализация коллекции.  (Прочитано 6591 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« : 11-06-2009 06:58 » 

Можно ли как-то инициализировать, например вектор, при создании набором значений?

Например, имеем:

Код:
typedef std::vector<int> list_int_t;

Хочется помещать в него не по одному значению через push_back(), а списком. Штатная возможность существует?

Типа такого:

Код:
list_int_t array = list_int_t(1, 2, 3, 4, 5);

Мне пока видится выход только через создание типа-структуры с членом-вектором и конструктором (int, ...).
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 11-06-2009 08:19 » 

По-моему, можно только проинициализировать другим контейнером, или через итераторы. То есть, создать массив констант, и указатели на массив подставить в качестве итераторов, примерно так:
Код:
typedef std::vector<int> list_int_t;

const int TEMP[] = {1, 2, 3, 4, 5};

list_int_t array(TEMP, TEMP+5);
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 11-06-2009 09:01 » 

только в новом стандарте будет работать вот такая хрень
Код:
typedef std::vector<int> list_int_t;
list_int_t array = {1, 2, 3, 4, 5};
если используешь последнии версии компиляторов то уже можешь пользоваться Улыбаюсь
Записан

Странно всё это....
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 11-06-2009 09:13 » 

LogRus, на работе я пользуюсь исключительно устаревшими версиями Улыбаюсь

В общем, сделал через va_list - использовать дополнительный массив не особо удобно и может даже напрягать и запутывать.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines