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

Как выглядит конструктор и деструктор для vector ? - C++

Восстановить пароль Регистрация
 
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
21.11.2013, 21:55     Как выглядит конструктор и деструктор для vector ? #1
Есть класс:
C++
1
2
3
4
5
6
class table_m
{
public:
    vector <Item> table;
    table_m();
};
Как будет выглядеть для него конструктор и деструктор? Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 21:55     Как выглядит конструктор и деструктор для vector ?
Посмотрите здесь:

C++ конструктор и деструктор
Конструктор для vector C++
конструктор и деструктор для cout C++
C++ Конструктор и деструктор
Для класса задать конструктор и деструктор C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
21.11.2013, 22:01     Как выглядит конструктор и деструктор для vector ? #2
C++
1
2
3
4
5
6
7
8
9
10
11
//default (1)   
explicit vector (const allocator_type& alloc = allocator_type());
//fill (2)  
explicit vector (size_type n, const value_type& val = value_type(),
                 const allocator_type& alloc = allocator_type());
//range (3) 
template <class InputIterator>
         vector (InputIterator first, InputIterator last,
                 const allocator_type& alloc = allocator_type());
//copy (4)  
vector (const vector& x);
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
21.11.2013, 22:14  [ТС]     Как выглядит конструктор и деструктор для vector ? #3
Так не понятно, вы можете проиллюстрировать работу конструктора и деструктора для этого класса:
C++
1
2
3
4
5
6
7
class table_m
{
public:
    vector <Item> table;
    table_m();
    ~table_m();
};
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
21.11.2013, 22:15     Как выглядит конструктор и деструктор для vector ? #4
C++
1
2
table_m::table_m() {}
~table_m::table_m() {}
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
21.11.2013, 22:21  [ТС]     Как выглядит конструктор и деструктор для vector ? #5
C++
1
2
table_m::table_m() {}
~table_m::table_m() {}
Разве таим образом будет инициализироваться и удалятся контейнер?
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
21.11.2013, 22:22     Как выглядит конструктор и деструктор для vector ? #6
Цитата Сообщение от Sammm Посмотреть сообщение
Как выглядит конструктор и деструктор для vector ?
От задачи зависит
Sammm
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 182
22.11.2013, 00:40  [ТС]     Как выглядит конструктор и деструктор для vector ? #7
Класс таблица:
C++
1
2
3
4
5
6
7
class table_m
{
public:
    vector <Item> table;
    table_m();
    ~table_m();
};
Класс элемент:
C++
1
2
3
4
5
6
class Item
{
public:
    int number;
    char * info;
};
Что еще необходимо знать для реализации конструктора и деструктора ?

Добавлено через 2 часа 12 минут
Как удалить все содержимое контейнера?
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
22.11.2013, 00:45     Как выглядит конструктор и деструктор для vector ? #8
Цитата Сообщение от Sammm Посмотреть сообщение
Как удалить все содержимое контейнера?
C++
1
vector <Item> ().swap(table);
c++11
std::vector::shrink_to_fit
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
22.11.2013, 02:07     Как выглядит конструктор и деструктор для vector ? #9
Цитата Сообщение от Sammm Посмотреть сообщение
Как удалить все содержимое контейнера?
C++
1
vec.clear ( ) ;
http://www.cplusplus.com/reference/vector/vector/clear/
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
22.11.2013, 12:54     Как выглядит конструктор и деструктор для vector ? #10
Наверное имелось в виду что-то типа того:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class table_m
{
private:
    vector <Item> table;
public:
    table_m()
      {
      };
    table_m( unsigned int _size )
      {
      table.reserve( _size );
      };
    ~table_m() 
      {
      table.clear();  // Удалили элементы
      vector<Item>().swap(table); // Очистили память
      };
};
Цитата Сообщение от Sammm Посмотреть сообщение
Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
Нет.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
22.11.2013, 13:02     Как выглядит конструктор и деструктор для vector ? #11
Цитата Сообщение от Sammm Посмотреть сообщение
Конструктор и деструктор для vector нужно вызывать внутри конструктора table_m() ?
Только конструктор, и не в теле конструктора table_m(), а в списке инициализации этого конструктора, иначе для table будет вызван конструктор по умолчанию. Вызов деструктора указывать нигде не надо - для этого они и нужны.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 13:49     Как выглядит конструктор и деструктор для vector ?
Еще ссылки по теме:

C++ Как сделать конструктор и деструктор с параметрами?
C++ Нужно ли прописывать конструктор и деструктор для чисто виртуального абстрактного класса
Деструктор для абстрактного класса, использующего static vector C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.11.2013, 13:49     Как выглядит конструктор и деструктор для vector ? #12
Цитата Сообщение от gray_fox Посмотреть сообщение
Вызов деструктора указывать нигде не надо - для этого они и нужны.
Возможно нюансы: placement new()
Yandex
Объявления
22.11.2013, 13:49     Как выглядит конструктор и деструктор для vector ?
Ответ Создать тему
Опции темы

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