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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 81
#1

Динамический массив объектов - C++

17.04.2010, 16:35. Просмотров 1800. Ответов 11
Метки нет (Все метки)

Как определить объект Group, который будет содержать динамический массив объектов Person?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2010, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив объектов (C++):

динамический массив объектов - C++
помогите с функцией PrintGarage, чтоб она выводила массив объектов Garage int main(){ char model; int number = 0; int run =...

Динамический массив объектов класса - C++
Как вместо статически введённых 5 объектов использовать ввод переменной во время выполнения программы, которая будет иметь значение, а...

Динамический массив объектов класса - C++
Здравствуйте. Возник вопрос, на который не получается найти понятного ответа. Есть класс Point: #include <iostream> #include...

Динамический массив динамических объектов - C++
Физически задача поставлена так: есть узел который состоит из разных деталей, количество деталей в узле может быть разным; из узлов...

Динамический массив объектов класса в функции - C++
Здравствуйте! У меня данные хранятся в файле, и, чтобы их отсортировать, я решил извлекать их из файла и записывать в динамический...

Как сделать динамический массив объектов? - C++
IContainer *C = new myString; Есть такая запись, нужно сделать массив из C. IContainer *C = new myString; такое не...

11
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 16:36 #2
C#
1
ArrayList Group;
Про ArrayList почитай здесь здесь.
0
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 81
17.04.2010, 17:07  [ТС] #3
Т.е. если мне необходимо определить объет Group, то я должен написать:
ArrayList^ Group = new ArrayList.
Но тогда где я должен задать что он является динамический массив объектов Person.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 17:23 #4
Savelev, я по ходу ошибся. Тебе надо на чистом C++?
0
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 81
17.04.2010, 17:30  [ТС] #5
Я пишу в Visual С++.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 17:32 #6
Savelev, для начала ответь на вопрос: тебе нужно на чистом C++?
0
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 81
17.04.2010, 17:37  [ТС] #7
Чистый С++
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
17.04.2010, 18:42 #8
Savelev, используй std::vector. Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <vector>
 
class Person {
  void SomeMethod();
  // ...
}
 
int main() {
  std::vector<Person> group;
 
  Person p1;
  Person p2;
  Person p3;
 
  group.push_back(p1);  // Добавление
  group.push_back(p2);  // Добавление
  group.push_back(p3);  // Добавление
 
  // Обход
  for (int i = 0; i < group.size(); ++i) {
    group[i].SomeMethod();
  }
    
}
1
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 81
17.04.2010, 18:58  [ТС] #9
Спасибо. Наверное разберусь в этом.
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
17.04.2010, 19:10 #10
"обход" элементов вектора иначе делается:

C++
1
2
3
4
5
6
std::vector<Person> group;
...
std::vector<Person>::const_iterator cit;
for (cit = group.begin(); cit != group.end(); cit++){
   cit->some_method();
}
const_iterator или iterator, зависит от конкретного случая. кроме того, в зависимости от того что из себя представляет Person, copy-constructor может понадобиться имплементировать. я бы контейнер свой написал вроде

C++
1
2
3
4
5
6
7
8
9
10
class PersonContainer {
public:
  PersonContainer ();
  virtual void ~PersonContainer () { clear (); }
  clear (); // delete all objects!
  add_person (const Person *pPerson);
  ...
private:
   std::vector<Person*> m_Persons;
}
, и его бы использовал. но кому что удобнее.
0
Savelev
0 / 0 / 0
Регистрация: 17.04.2010
Сообщений: 81
17.04.2010, 19:16  [ТС] #11
А не подскажешь где про std::vector можно почитать на русском? С примерами чтобы было желательно.
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
17.04.2010, 19:43 #12
http://www.cppreference.com/wiki/ru/stl/vector/start
0
17.04.2010, 19:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2010, 19:43
Привет! Вот еще темы с ответами:

Создать динамический массив объектов, инициализировать его - C++
Создать динамический массив объектов, инициализировать его. Организовать поиск элемента в массиве по заданному значению. Создать иерархии...

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

Как можно создать динамический массив объектов fstream? - C++
есть вариант,но не работает. подскажите как правильно сделать char buf; cin&gt;&gt;n; fstream *A; A=new fstream ; for (int...

Динамический массив объектов класса и считывание двоичных файлов - C++
Долго бьюсь и не могу понять. В этом варианте он выдает такую ошибку #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; ...


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

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

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