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

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

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

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

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

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

Создать динамический массив объектов пользовательского типа - C++
Есть класс class address { } Нужно создать динамический массив объектов. Записи создаются по одной (адреса), их общее число не...

Как правильно передать массив объектов пользовательского типа в функцию? - C++
Доброго всем, пишу впервые пишу огромную программу - игру и столкнулся с проблемой, которую так сам и не могу решить. Нужно передать массив...

Создать массив объектов пользовательского типа "Car" (каталог машин) и функции чтения/записи из/в каталог(а) - C++
Добрый день! Нужно составить программу, которая будет дополнять каталог автомобилей Имеется массив структур Auto *car = new Auto ...

Найти наименьший элемент массива объектов пользовательского типа - C++
Помогите, пожалуйста. Нужно ввести размер массива и его элементы, а программа должна вывести наименьший, но выдает ошибку. Что не так? ...

Реализовать поиск в массиве объектов пользовательского типа по заданному полю - C++
Создать типизированный файл, элементами которого являются сведения об автомобилях: марка, вместимость, год выпуска, цвет. Вывести марку...

Реализовать поиск по заданному полю в массиве объектов пользовательского типа - C++
ОСНОВЫ ОБРАБОТКИ СТРУКТУР С клавиатуры ввести последовательность записей, содержащих информацию о студенческие группы института...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
05.11.2013, 21:34 #2
Gesparo, Если я не ошибаюсь, то 4 объекта, с полями, сформированными конструктором по умолчанию
newbie666
Заблокирован
05.11.2013, 21:34 #3
Цитата Сообщение от scenotaph Посмотреть сообщение
Gesparo, Если я не ошибаюсь, то 4 объекта, с полями, сформированными конструктором по умолчанию
вроде хранится 4 указателя, без инициализации объекта
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 21:55  [ТС] #4
это не 4 объекта, так как нельзя не инициализировав объект, обратиться к его элемент-данным

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

Добавлено через 11 минут
все, вопрос решен: если реальный объект, то - указатель будет указывать на адресс в памяти( например: 0х0ff7f00),
в противном случае - 0
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
05.11.2013, 22:00 #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Эксперт С++
13147 / 7410 / 830
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
05.11.2013, 22:05 #6
C++
1
vector< Employer* > employerArray ( 4,  new Employer );
Заполнить всё указателем на один и тот же элемент?
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 22:21  [ТС] #7
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
vector< Employer* > employerArray ( 4,  new Employer );
Заполнить всё указателем на один и тот же элемент?
Скорей всего теперь вектор указывает на реальные объекты Employer созданные при помощи конструктора умолчанию
Avazart
05.11.2013, 22:23
  #8

Не по теме:

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

Croessmah
Модератор
Эксперт CЭксперт С++
13147 / 7410 / 830
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
05.11.2013, 22:24 #9
Цитата Сообщение от Gesparo Посмотреть сообщение
Скорей всего теперь вектор указывает на реальные объекты Employer
на реальный объекты Employer
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
05.11.2013, 22:26  [ТС] #10
Цитата Сообщение от Croessmah Посмотреть сообщение
на реальный объекты Employer
т.е. на один и тот же объект хранящийся по одному и тому же адресу?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
05.11.2013, 23:06 #11
Для заполнения контейнера логично использовать функцию std::generate.
mat_for_c
141 / 136 / 29
Регистрация: 26.04.2013
Сообщений: 663
Завершенные тесты: 2
06.11.2013, 00:31 #12
Цитата Сообщение от Tulosba Посмотреть сообщение
Для заполнения контейнера логично использовать функцию std::generate.
Это если известен используемый размер вектора, а если он не известен, то логично использовать push_back. Или нет?
Gesparo
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 23
06.11.2013, 00:48  [ТС] #13
Цитата Сообщение от mat_for_c Посмотреть сообщение
Это если известен используемый размер вектора, а если он не известен, то логично использовать push_back. Или нет?
Кол-во элементов вектора известно всегда, а push_back использовать можно, оно в конце( когда мы не сможем больше добавлять) выдаст исключение
mat_for_c
141 / 136 / 29
Регистрация: 26.04.2013
Сообщений: 663
Завершенные тесты: 2
06.11.2013, 00:59 #14
Цитата Сообщение от mat_for_c Посмотреть сообщение
если известен используемый размер вектора
я имел ввиду при инициализации, т.е. вектор конкретного размера, подобно массиву из n=const элементов.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.11.2013, 07:05 #15
Цитата Сообщение от mat_for_c Посмотреть сообщение
Это если известен используемый размер вектора, а если он не известен, то логично использовать push_back. Или нет?
Да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 07:05
Привет! Вот еще темы с ответами:

Реализовать поиск по заданному полю в массиве объектов пользовательского типа - C++
Все сделал, в своей задачи, осталось только вот это, помогите. Вывод на экран информацию о людях, родившихся под знаком зодиака, название...

Реализовать поиск по заданному полю в списке объектов пользовательского типа - C++
Вечер добрый. Помогите с написанием кода Задание в dev c++ Описать структуру, содержащую следующие поля: • фамилия, имя; • номер...

Реализовать поиск в массиве объектов пользовательского типа по заданному полю (структуры) - C++
1) В столовой предлагается N комплексных обедов, состоящих из Q блюд. Известна стоимость и калорийность каждого блюда. Сколько стоит...

Реализовать сортировку массива объектов пользовательского типа по заданному полю (структуры) - C++
Есть перечень студентов, прибывших в лагерь по форме: ФИО, факультет, номер отряда. Упорядочить перечень по номерам отрядов, внутри отряда...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.11.2013, 07:05
Ответ Создать тему
Опции темы

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