Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Dzirt2005, Вы писали:
D>>А я не надеюсь... Я на исходный код vector'а посмотрел.
Ytz>Какая реализация STL? По моему опыту как раз освобождения памяти не происходит, недаром даже идиома горячей усадки существует.
Очень-очень старая Hewlett-Packard'овская, шедшая с одним из компиляторов Borland C++ под DOS. А что?
Может они таким образом память экономили, а может просто не подумали еще в то время... Я поискал еще по загашникам, нашел от Borland C++ 5.02. В этом варианте такие строки:
...
/* $Revision: 8.1 $ */
/***************************************************************************
*
* vector - declarations for the Standard Library vector class
*
* $Id: vector,v 1.41 1995/09/14 23:53:38 lijewski Exp $
*
***************************************************************************
*
* Copyright (c) 1994
* Hewlett-Packard Company
...
и, кстати, в этой реализации даже функции clear нет, но вызов erase( begin(), end() ); освобождения памяти не делает.
Это одна из иллюстраций того, что написал
_stun_:
__>Сильно зависит от реализации ...
И именно потому я и написал, что вообще бы не надеялся на реализацию и выбросил бы вообще clear и reserve из цикла. Будем считать, что я вас немного подколол.
Наверняка во всех современных реализациях такого нет, раз уже в 95 году не было.
Здравствуйте, Dzirt2005, Вы писали:
D>Очень-очень старая Hewlett-Packard'овская, шедшая с одним из компиляторов Borland C++ под DOS. А что?
Я, в принципе, и так понял, что Вы ответите.
Да ничего. Просто, строго говоря, это не C++ и не STL.
Здравствуйте, TailWind, Вы писали:
В связи с возникшими спорами про vector::clear: давным давно это обсуждали
здесьАвтор:
Дата: 30.12.03