Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Как программно убить vector!
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Dmitry_i Dmitry_i вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2007
По умолчанию Как программно убить vector! - 26.12.2007, 12:01

Здравствуйте! Создается поток, в нем происходит работа с данными и в ентом потоке создается вектор, при закрытии потока не высвобождается память, пробовал без вектора усе нормально, вопрос как грамотно убить вектор(проблемма в том что потоки часто запускаются и происходит утечка памяти) ?

Код:
struct vec
{
  int i;
}

vector <vec> myVec;

void Trata-ta   // типа поток;)
{
   myVec Vec1;
   vec   temp;
   for(int i=0;i<12345;i++)
  {
      temp.i = i;
     Vec1.push_back(temp);// заполняю вектор

   }
 Vec1.clear();// очистка
 Vec1.~vector<vec>();// вроде как должен его убить, но че то не работает
return;
}
Ответить с цитированием
  (#2 (permalink)) Старый
Dmitry_i Dmitry_i вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2007
По умолчанию Как программно убить vector! - 26.12.2007, 12:01

Здравствуйте! Создается поток, в нем происходит работа с данными и в ентом потоке создается вектор, при закрытии потока не высвобождается память, пробовал без вектора усе нормально, вопрос как грамотно убить вектор(проблемма в том что потоки часто запускаются и происходит утечка памяти) ?

Код:
struct vec
{
  int i;
}

vector <vec> myVec;

void Trata-ta   // типа поток;)
{
   myVec Vec1;
   vec   temp;
   for(int i=0;i<12345;i++)
  {
      temp.i = i;
     Vec1.push_back(temp);// заполняю вектор

   }
 Vec1.clear();// очистка
 Vec1.~vector<vec>();// вроде как должен его убить, но че то не работает
return;
}
Ответить с цитированием
  (#3 (permalink)) Старый
Dmitry_i Dmitry_i вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2007
По умолчанию Как программно убить vector! - 26.12.2007, 12:01

Здравствуйте! Создается поток, в нем происходит работа с данными и в ентом потоке создается вектор, при закрытии потока не высвобождается память, пробовал без вектора усе нормально, вопрос как грамотно убить вектор(проблемма в том что потоки часто запускаются и происходит утечка памяти) ?

Код:
struct vec
{
  int i;
}

vector <vec> myVec;

void Trata-ta   // типа поток;)
{
   myVec Vec1;
   vec   temp;
   for(int i=0;i<12345;i++)
  {
      temp.i = i;
     Vec1.push_back(temp);// заполняю вектор

   }
 Vec1.clear();// очистка
 Vec1.~vector<vec>();// вроде как должен его убить, но че то не работает
return;
}
Ответить с цитированием
  (#4 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 26.12.2007, 12:07

Ты объявляешь глобальную переменную myVec. Она будет жить до завершения процесса.
Выделяй вектор на куче и убивай, когда он перестаёт быть нужным.
Другой вариант - используй небольшую хитрость с swap:
Код:
{
    vector<vec> tmp;
    Vec1.swap( tmp );
}
Ответить с цитированием
  (#5 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 26.12.2007, 12:07

Ты объявляешь глобальную переменную myVec. Она будет жить до завершения процесса.
Выделяй вектор на куче и убивай, когда он перестаёт быть нужным.
Другой вариант - используй небольшую хитрость с swap:
Код:
{
    vector<vec> tmp;
    Vec1.swap( tmp );
}
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 26.12.2007, 12:07

Ты объявляешь глобальную переменную myVec. Она будет жить до завершения процесса.
Выделяй вектор на куче и убивай, когда он перестаёт быть нужным.
Другой вариант - используй небольшую хитрость с swap:
Код:
{
    vector<vec> tmp;
    Vec1.swap( tmp );
}
Ответить с цитированием
  (#7 (permalink)) Старый
batman batman вне форума
Member
 
Сообщений: 105
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2007
Thumbs up 26.12.2007, 14:46

Цитата:
<div class='codetop'>Код C++
<div class='codemain'>struct vec
{
int i;
}

vector <vec> myVec;

void Trata-ta // типа поток
{
myVec Vec1;
................
................
}[/code][/quote]

А myVec -это вообще имя переменной или типа ?
Ответить с цитированием
  (#8 (permalink)) Старый
batman batman вне форума
Member
 
Сообщений: 105
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2007
Thumbs up 26.12.2007, 14:46

Цитата:
<div class='codetop'>Код C++
<div class='codemain'>struct vec
{
int i;
}

vector <vec> myVec;

void Trata-ta // типа поток
{
myVec Vec1;
................
................
}[/code][/quote]

А myVec -это вообще имя переменной или типа ?
Ответить с цитированием
  (#9 (permalink)) Старый
batman batman вне форума
Member
 
Сообщений: 105
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.10.2007
Thumbs up 26.12.2007, 14:46

Цитата:
<div class='codetop'>Код C++
<div class='codemain'>struct vec
{
int i;
}

vector <vec> myVec;

void Trata-ta // типа поток
{
myVec Vec1;
................
................
}[/code][/quote]

А myVec -это вообще имя переменной или типа ?
Ответить с цитированием
  (#10 (permalink)) Старый
Dmitry_i Dmitry_i вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2007
По умолчанию 26.12.2007, 16:02

myVec - тип
Ответить с цитированием
  (#11 (permalink)) Старый
Dmitry_i Dmitry_i вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2007
По умолчанию 26.12.2007, 16:02

myVec - тип
Ответить с цитированием
  (#12 (permalink)) Старый
Dmitry_i Dmitry_i вне форума
Member
 
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.10.2007
По умолчанию 26.12.2007, 16:02

myVec - тип
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 27.12.2007, 12:03

Цитата:
myVec - тип
Тогда нужно писать:
Код:
typedef vector <vec> myVec;
Ответить с цитированием
  (#14 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 27.12.2007, 12:03

Цитата:
myVec - тип
Тогда нужно писать:
Код:
typedef vector <vec> myVec;
Ответить с цитированием
  (#15 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 27.12.2007, 12:03

Цитата:
myVec - тип
Тогда нужно писать:
Код:
typedef vector <vec> myVec;
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как не убить ноутбук... АнтиХакер Любые вопросы от новичков 4 16.06.2011 16:32
Убить подсветку матрицы haven Ноутбуки 1 28.05.2011 11:55
Как убить vista him777 Windows Vista 33 29.04.2008 01:04
хочу убить VIS-ту Артем Драйвера 21 14.08.2007 12:48
Как Трояна убить? Woodpecker monitor Компьютерная безопасность 52 07.07.2007 20:01
Как убить массивы указателей Hum .NET 2 19.05.2007 17:56
Как убить кролика Vladimir the Red Sunny Игры разума 12 11.08.2006 11:24
Не компилится std::vector<std::vector<int>> vertexes Omen С/С++ 3 14.02.2005 21:51
Потеря итератора по vector при добавлении в vector Матвей С/С++ 2 15.01.2004 15:32
Как программно убить процесс Anonymous WinAPI 1 06.11.2003 22:53
Как убить расширение файла Anonymous PHP 3 08.10.2003 20:11



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов