Форум программистов, компьютерный форум CyberForum.ru

Массив объектов пользовательского типа в vector - C++

Восстановить пароль Регистрация
 
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 21:29     Массив объектов пользовательского типа в vector #1
Доброго времени суток. Кто может подсказать что храниться в
C++
1
 vector< Employer* > employerArray ( 4 );
при его инициализации?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
05.11.2013, 21:34     Массив объектов пользовательского типа в vector #2
Gesparo, Если я не ошибаюсь, то 4 объекта, с полями, сформированными конструктором по умолчанию
newbie666
Заблокирован
05.11.2013, 21:34     Массив объектов пользовательского типа в vector #3
Цитата Сообщение от scenotaph Посмотреть сообщение
Gesparo, Если я не ошибаюсь, то 4 объекта, с полями, сформированными конструктором по умолчанию
вроде хранится 4 указателя, без инициализации объекта
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 21:55  [ТС]     Массив объектов пользовательского типа в vector #4
это не 4 объекта, так как нельзя не инициализировав объект, обратиться к его элемент-данным

Добавлено через 2 минуты
Цитата Сообщение от newbie666 Посмотреть сообщение
вроде хранится 4 указателя, без инициализации объекта
а как понять, элемент массива указывает на реальный объект или нет?

Добавлено через 11 минут
все, вопрос решен: если реальный объект, то - указатель будет указывать на адресс в памяти( например: 0х0ff7f00),
в противном случае - 0
Avazart
 Аватар для Avazart
6900 / 5140 / 252
Регистрация: 10.12.2010
Сообщений: 22,584
Записей в блоге: 17
05.11.2013, 22:00     Массив объектов пользовательского типа в vector #5
Цитата Сообщение от Gesparo Посмотреть сообщение
а как понять, элемент массива указывает на реальный объект или нет?
Во первых не массив а вектор, во вторых ответ на вопрос-никак...

Цитата Сообщение от Gesparo Посмотреть сообщение
в противном случае - 0
Не факт, может указывать и на мусор, если не инициализировать/обнулять

Добавлено через 3 минуты
Делай :
C++
1
vector< Employer* > employerArray ( 4,  nullptr );
Или
C++
1
vector< Employer* > employerArray ( 4,  new Employer );
http://www.cplusplus.com/reference/v...vector/vector/
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
05.11.2013, 22:05     Массив объектов пользовательского типа в vector #6
C++
1
vector< Employer* > employerArray ( 4,  new Employer );
Заполнить всё указателем на один и тот же элемент?
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 22:21  [ТС]     Массив объектов пользовательского типа в vector #7
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
vector< Employer* > employerArray ( 4,  new Employer );
Заполнить всё указателем на один и тот же элемент?
Скорей всего теперь вектор указывает на реальные объекты Employer созданные при помощи конструктора умолчанию
Avazart
05.11.2013, 22:23
  #8

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Заполнить всё указателем на один и тот же элемент?
Ну да с дуру ляпнул

Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
05.11.2013, 22:24     Массив объектов пользовательского типа в vector #9
Цитата Сообщение от Gesparo Посмотреть сообщение
Скорей всего теперь вектор указывает на реальные объекты Employer
на реальный объекты Employer
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 22:26  [ТС]     Массив объектов пользовательского типа в vector #10
Цитата Сообщение от Croessmah Посмотреть сообщение
на реальный объекты Employer
т.е. на один и тот же объект хранящийся по одному и тому же адресу?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
05.11.2013, 23:06     Массив объектов пользовательского типа в vector #11
Для заполнения контейнера логично использовать функцию std::generate.
mat_for_c
 Аватар для mat_for_c
115 / 110 / 19
Регистрация: 26.04.2013
Сообщений: 585
Завершенные тесты: 2
06.11.2013, 00:31     Массив объектов пользовательского типа в vector #12
Цитата Сообщение от Tulosba Посмотреть сообщение
Для заполнения контейнера логично использовать функцию std::generate.
Это если известен используемый размер вектора, а если он не известен, то логично использовать push_back. Или нет?
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
06.11.2013, 00:48  [ТС]     Массив объектов пользовательского типа в vector #13
Цитата Сообщение от mat_for_c Посмотреть сообщение
Это если известен используемый размер вектора, а если он не известен, то логично использовать push_back. Или нет?
Кол-во элементов вектора известно всегда, а push_back использовать можно, оно в конце( когда мы не сможем больше добавлять) выдаст исключение
mat_for_c
 Аватар для mat_for_c
115 / 110 / 19
Регистрация: 26.04.2013
Сообщений: 585
Завершенные тесты: 2
06.11.2013, 00:59     Массив объектов пользовательского типа в vector #14
Цитата Сообщение от mat_for_c Посмотреть сообщение
если известен используемый размер вектора
я имел ввиду при инициализации, т.е. вектор конкретного размера, подобно массиву из n=const элементов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 07:05     Массив объектов пользовательского типа в vector
Еще ссылки по теме:

C++ Передача в функцию динамический массив объектов первого и второго типа
C++ Ошибки при создании vector'a пользовательского класса
Преобразование пользовательского типа, friend C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.11.2013, 07:05     Массив объектов пользовательского типа в vector #15
Цитата Сообщение от mat_for_c Посмотреть сообщение
Это если известен используемый размер вектора, а если он не известен, то логично использовать push_back. Или нет?
Да.
Yandex
Объявления
06.11.2013, 07:05     Массив объектов пользовательского типа в vector
Ответ Создать тему
Опции темы

Текущее время: 06:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru