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

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

Войти
Регистрация
Восстановить пароль
 
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
#1

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

05.11.2013, 21:29. Просмотров 675. Ответов 14
Метки нет (Все метки)

Доброго времени суток. Кто может подсказать что храниться в
C++
1
 vector< Employer* > employerArray ( 4 );
при его инициализации?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 21:29     Массив объектов пользовательского типа в vector
Посмотрите здесь:

C++ Реализовать поиск в массиве объектов пользовательского типа по заданному полю (структуры)
C++ Не удаётся создать безымянный объект типа vector моего типа
C++ Ошибки при создании vector'a пользовательского класса
Можно ли присвоить объекту основного типа значение объекта пользовательского типа? C++
Реализовать сортировку массива объектов пользовательского типа по заданному полю (структуры) C++
Реализовать поиск в массиве объектов пользовательского типа (структура "Маршруты") C++
Как правильно передать массив объектов пользовательского типа в функцию? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,916
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12520 / 7082 / 797
Регистрация: 27.09.2012
Сообщений: 17,489
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12520 / 7082 / 797
Регистрация: 27.09.2012
Сообщений: 17,489
Записей в блоге: 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
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
05.11.2013, 23:06     Массив объектов пользовательского типа в vector #11
Для заполнения контейнера логично использовать функцию std::generate.
mat_for_c
 Аватар для mat_for_c
120 / 115 / 21
Регистрация: 26.04.2013
Сообщений: 597
Завершенные тесты: 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
120 / 115 / 21
Регистрация: 26.04.2013
Сообщений: 597
Завершенные тесты: 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++ Из XML-файла извлечь значения его атрибутов в массив типа std::vector<int>
C++ Создать динамический массив объектов пользовательского типа
C++ Почему с помощью std::cin не получается считать с клавиатуры массив пользовательского типа?
Найти наименьший элемент массива объектов пользовательского типа C++
C++ Реализовать поиск и сортировку по заданному полю в списке объектов пользовательского типа

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4384 / 3227 / 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
Ответ Создать тему
Опции темы

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