Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Magsitr
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 6
#1

Инициализация вектора значениями при объявлении - C++

03.02.2013, 12:02. Просмотров 2031. Ответов 7
Метки нет (Все метки)

Добрый день!

Изучаю c++, сейчас разбираюсь с векторами.

дошел до конструктора vector::vector(input_iterator start, input_iterator end), правильно я понимаю, что можно инициализировать вектор значениями от a до b в момент объявления?
Если да, то каким образом это делается практически?
Если можно пример кода с такой инициализацией.
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2013, 12:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Инициализация вектора значениями при объявлении (C++):

Инициализация массива при объявлении - C++
Здравствуйте Маленький вопросик как проинициализировать массив при определении? template <class T> class myClass { private:...

Инициализация при объявлении и перегрузка operator= - C++
Предположим, у меня есть класс, например, такого состава: class CharInt { public: char chA; int intB; };Путём...

Ошибка при объявлении вектора- поля структуры - C++
при объявлении вектора полем структуры компилятор выдает ошибку C2059 в месте, где задается размер вектора: причем при объявлении...

Инициализация членов в объявлении класса - C++
В классе: class peltier { public: material p = material('p'); material n = material('n'); peltier(); ~peltier(void); };

Инициализация в объявлении константных статических (const static) членов-данных класса. - C++
Привет. Подскажите пожалуйста почему нельзя создавать в классе const static float, а const static int можно? class A{ const...

Инициализация вектора - C++
у меня в классе есть vector из string (константный, просто строки нужны как образец для других функций), в конструкторе соответственно надо...

7
0x10
2480 / 1655 / 248
Регистрация: 24.11.2012
Сообщений: 4,101
03.02.2013, 12:08 #2
http://en.cppreference.com/w/cpp/container/vector/vector
1
Magsitr
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 6
03.02.2013, 12:13  [ТС] #3
Может я туплю, но все равно не понял.
0
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
03.02.2013, 12:19 #4
Цитата Сообщение от Magsitr Посмотреть сообщение
дошел до конструктора vector::vector(input_iterator start, input_iterator end), правильно я понимаю, что можно инициализировать вектор значениями от a до b в момент объявления?
Не понял вопрос. Откуда a и b взяты?
1
Magsitr
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 6
03.02.2013, 12:24  [ТС] #5
Цитата Сообщение от Евгений М. Посмотреть сообщение
Не понял вопрос. Откуда a и b взяты?
Насколько я понял, что с помощью этого конструктора я могу инициализировать вектор значениями, например от 1 до 10 при объявлении, или я что-то не так понял?
0
0x10
2480 / 1655 / 248
Регистрация: 24.11.2012
Сообщений: 4,101
03.02.2013, 12:30 #6
Конструктор принимает два итератора - начало и конец контейнера, которым можно проинициализировать вектор. Варианты:
C++
1
2
3
int myints[] = {16,2,77,29};
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );
std::vector<int> fifth2(fifth.begin(), fifth.end());
1
Евгений М.
1036 / 977 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
03.02.2013, 12:43 #7
Цитата Сообщение от Magsitr Посмотреть сообщение
я что-то не так понял?
Наверно не так понял.

Грубо говоря после вызова конструктора копируется элементы контейнера, итераторы которого (start, end в нашем случае) являются параметрами вызываемого конструктора.
1
Magsitr
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 6
03.02.2013, 12:45  [ТС] #8
Спасибо, теперь разобрался.
0
03.02.2013, 12:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2013, 12:45
Привет! Вот еще темы с ответами:

Инициализация вектора - C++
Почему вектор не хочет инициализироваться при обьявлении? vector&lt;int&gt; vec = {1,2,3}; Имеем Error (active) E0289 no instance...

Инициализация вектора - C++
Как создать и сразу инициализировать вектор числами 5 3 1 3 5 2 5?

Инициализация вектора - C++
Как правильно инициализировать двумерный символьный вектор? Пробовал вот так, не получилось vector&lt; vector&lt;char&gt; &gt; map(2,...

Инициализация вектора класса - C++
Здравствуйте. Следующий код не работает: struct stRefName { AnsiString BranchName; AnsiString TableName; }; typedef...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru