Я должен реализовать Vector<MyObject*>
по телефону AnotherClass::objectCollections()
. Поэтому здесь тип возврата должен быть Vector<MyObject*>
. Также мне нужно вернуть каждый MyObject*
из другой функции, которая могла бы вернуть MyObject*
. Чтобы он мог заполнять Вектор. Я новичок в программировании на C++. Я хочу знать более безопасный способ реализовать это без сбоев, даже если динамически созданный векторный массив имеет большое количество, и это будет очень полезно, если вы предоставите адекватный пример или ссылку с необходимыми типами возврата.Вектор создания объектов-указателей
0
A
ответ
0
Хорошо, вот образец. Я заполняю вектор несколькими указателями на int. Затем я удаляю их один за другим и, наконец, очищаю вектор. Если я woudnt вручную вызовет оператор delete для каждого элемента до Vector.clear(), произойдет утечка памяти.
std::vector<int*> Vector;
for (int i = 0; i < 10; i++)
Vector.push_back(new int(i));
std::vector<int*>::const_iterator It;
for (It = Vector.begin(); It != Vector.end(); It++)
{
int* n = *It;
if (n) delete n;
}
Vector.clear();
+0
Спасибо. Из этого я могу пойти дальше в своем коде. –
Смежные вопросы
- 1. создания экземпляра вектор типа с подтипом
- 2. Ошибки создания std :: вектор локальной структуры
- 3. Вектор в вектор ... Java
- 4. Раздвигая вектор в вектор
- 5. Добавить вектор в вектор
- 6. Пространственный вектор, цветной вектор
- 7. Как изолировать вектор символов после создания фрейма данных в R?
- 8. Стоит ли использовать вектор в случае создания карты
- 9. Как я могу исправить этот вектор создания в C++
- 10. pandas: groupby и unstack для создания вектор-функции для классификации
- 11. Используйте вектор для создания пустых столбцов в кадре данных
- 12. Подстановка столбца data.frame в вектор для создания confint
- 13. Создания C STL ++ вектор на куче заданного размера внутри конструктора
- 14. Петли и вектор для создания URL-адресов; цифры в цикле
- 15. вектор, указывающий на вектор указателей
- 16. C вектор в символьном *** вектор
- 17. Присвоить вектор детей вектор бабушек
- 18. push_back вектор векторов в вектор
- 19. Присвоить вектор индексацию другой вектор
- 20. Вставить вектор в вектор, Matlab
- 21. питона вектор * вектор ------> матрица
- 22. Вставить вектор в другой вектор
- 23. Сплит-вектор в вектор векторов
- 24. Раздвигая вектор в другой вектор
- 25. Вектор двойного на вектор байтов
- 26. Вектор-вектор умножения создать матрицу
- 27. C++ вектор итераторов
- 28. C++, создавая вектор векторов?
- 29. Как создать вектор слова
- 30. Triple DES вектор инициализации
Я бы настоятельно рекомендовал использовать интеллектуальные указатели в вашем векторе, но только если вам абсолютно нужны указатели там, в первую очередь. – chris
Это будет так приятно, если вы приведете пример. Спасибо .. –
Посмотрите на 'std :: unique_ptr',' std :: shared_ptr' и 'std :: weak_ptr', или если у вас нет C++ 11, умный указатель boost будет, вероятно, следующей лучшей опцией , – chris