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

Корректное удаление вектора векторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Автоматический сдвиг в выделенной области http://www.cyberforum.ru/cpp-beginners/thread1220616.html
Подскажите, пожалуйста У меня есть класс окна-прямоугольника Window, у которого заданы координаты верхнего левого угла и ширина-высота И для него реализована функция print, которая выводит строку посимвольно в этот прямоугольник в .hpp class Window { public: Window (int x,int y,int w,int h):x_(x),y_(y),w_(w),h_(h), cur_x_(0), cur_y_(0), color_(15), bg_(4){}; //... void print (const...
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массив В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массива; • произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. http://www.cyberforum.ru/cpp-beginners/thread1220611.html
C++ Программа, реализующая отображение файловой системы
Одногруппнику нужно написать программу, реализующую отображение файловой системы EXT2 на каком-либо носителе (дискете). Проблема в том, что мы даже не знаем как будет выглядеть интерфейс такой программы. Поэтому просим помощи и в этом тоже.
C++ Передача анонимного двойного указателя в функцию
Создаю SNDFILE **outfile1=new SNDFILE*; priemnik(??? **outfile1) Это всё в main void priemnik(???) {
C++ Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки http://www.cyberforum.ru/cpp-beginners/thread1220578.html
Помогите решить задачу C++ пожалуйста, пожалуйста Упорядочить строки матрицы D (m. n) Лексикографически по неубыванию первых k элементов строки #include <iostream.h> #include <stdlib.h> #include <conio.h> void main() { char mas;
C++ Ошибка при написании класса: Unhandled exception std::bad_alloc at memory location ПИшу свой клас Var, проблема в следующем из-за строчки first = first+1; вылетает ошибка Unhandled exception at at 0x760FB727 in Проект15.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0037E7DC. и я непойму почему(( вот код Var.h #include <iostream> подробнее

Показать сообщение отдельно
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
01.07.2014, 17:53     Корректное удаление вектора векторов
Цитата Сообщение от Croessmah Посмотреть сообщение
скорее это решать аллокатору, а не вектору
Вызывает-то deallocate деструктор вектора.

Вот например код из библиотеки моего компилятора. _M_deallocate соответственнно уже дергает функцию аллокатора.
C++
1
2
3
      ~_Vector_base()
      { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage
              - this->_M_impl._M_start); }
Если аллокатор не заменен на нестандартный, который на самом деле ничего не делает при вызове deallocate, то решает все-таки вектор

Добавлено через 6 минут
Croessmah, Хотя я понял о чем ты. Естественно "физически" - это абстракция. Т.к. есть еще слой C++ runtime, затем OS runtime и там эта память может кешироваться и все такое. Так что говоря "физически" имелось в виду не вообще физически, а компетенция конкретных инструментов. Естественно если аллокатор заменен на какой-нибудь другой, deallocate в котором на самом деле отдает память обратно в пул, то в глобальном смысле слова это НЕ будет "физическим освобождением", но с точки зрения самого вектора - будет. Т.к. в этой связи нет разницы кто закешировал память, самописный аллокатор или С++ runtime, это уже вне компетенции вектора. Он, грубо говоря, сделал все что смог
 
Текущее время: 03:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru