Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
121 / 109 / 29
Регистрация: 18.12.2010
Сообщений: 378
1

Создать vector из объектов класса

01.05.2014, 20:50. Показов 1503. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!

У меня есть некий класс SuperClass, в котором есть динамическое поле:
C++
1
2
3
4
5
6
7
8
class SuperClass
{
public:
    int *v;
 
    SuperClass(int x){v = new int; *v = x;}
    ...
}
Еще у меня есть массив int M[N], и мне нужно создать вектор из N объектов класса SuperClass:
C++
1
vector <SuperClass> arr;
так, чтобы значение *v в i-м элементе вектора было равно соответственно M[i].
Как я это пытаюсь делать:
C++
1
2
3
4
5
for (int i = 0; i < N; ++i)
{
    SuperClass temp(M[i]);
    arr.push_back(temp);
}
, но в итоге я получаю вектор из совершенно одинаковых элементов Я понимаю, что это происходит из-за того, что неправильно копируется указатель, но я не знаю, как это не криво исправить. Помогите, пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2014, 20:50
Ответы с готовыми решениями:

Как создать vector внутри класса?
#include &lt;vector&gt; using namespace std; // typedef std::vector&lt;int&gt; mantissa; class...

Создать производный класс ТРОИЧНЫЙ ВЕКТОР от класса Vector
Народ!!! Please help me! Задолбался уже!:wall: Вобщем такое задание: Создать производный...

Как корректно скопировать vector в vector внутри класса
Есть класс принимающий в конструкторе vector: class test { test(std::vector&lt;std::string&gt;...

Создать шаблонную очередь и инстанцировать её для своего класса, представляющего строку на базе vector<char>
Была задача создать шаблонную очередь (я это сделал) и инстанцировать её для своего класса,...

7
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.05.2014, 21:18 2
C++
1
2
3
4
5
6
7
8
class SuperClass
{
public:
    int *v;
 
    SuperClass(int x){v = new int; *v = x;}  // Че курил когда писал эту стройку ?
    ...
}
Что это за уродство ?
Чего ты ту вообще хотел сделать ?
0
121 / 109 / 29
Регистрация: 18.12.2010
Сообщений: 378
01.05.2014, 21:20  [ТС] 3
Цитата Сообщение от Avazart Посмотреть сообщение
Что это за уродство ?
Чего ты ту вообще хотел сделать ?
А что не так? Я просто переформулировал свою задачу более просто. Конечно же я не буду писать int *v
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.05.2014, 21:36 4
нафига выделять память под один int динамически?
0
121 / 109 / 29
Регистрация: 18.12.2010
Сообщений: 378
01.05.2014, 21:40  [ТС] 5
Цитата Сообщение от Asker Посмотреть сообщение
Я просто переформулировал свою задачу более просто
Если так будет угодно, вместо int на самом деле гигантская структура. Мне надо понять, что с указателем делать
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.05.2014, 21:48 6
Ну так и пиши ...
Ты хочешь что бы тебе адекватно ответили на неадекватный пример ?

Ответ на твой вопрос:
C++
1
// Тут ответ, додумай его  сам.
Добавлено через 5 минут
Цитата Сообщение от Asker Посмотреть сообщение
Мне надо понять, что с указателем делать
Копирующий конструктор определить, как минимум.
1
121 / 109 / 29
Регистрация: 18.12.2010
Сообщений: 378
01.05.2014, 22:07  [ТС] 7
Цитата Сообщение от Avazart Посмотреть сообщение
Ответ на твой вопрос:
C++
1
// Тут ответ, додумай его  сам.


Цитата Сообщение от Avazart Посмотреть сообщение
Копирующий конструктор
Тем не менее, это сработало, спасибо
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.05.2014, 22:13 8
Вообще если работаешь с контейнерами, то стоит подумать о конструкторе по умолчанию, копирующем конструкторе, и операторе присвоения. А для словарей и множеств еще и операторы сравнения.
1
01.05.2014, 22:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2014, 22:13
Помогаю со студенческими работами здесь

Создать коллекцию объектов класса
Есть код класса, все вроде работает. Но, теперь мне необходимо каким-то образом создать несколько...

Возможно ли создать массив объектов класса?
Здравствуйте, уважаемые специалисты! Делаю приложение по распределению грузов на корабле....

Создать контейнер list объектов класса
Здравствуйте! Подскажите, пожалуйста, почему у меня выводятся адреса, вместо значения? У меня...

Как создать динамический масссив объектов класса
Видел, как создаются обычные динамический массивы, но сразу с указанием количества элементов, а что...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru