Re[5]: Частое выделение памяти - стоит ли этого бояться?
От: _stun_ Россия  
Дата: 29.04.10 17:36
Оценка:
Здравствуйте, Dzirt2005, Вы писали:

выделений/освобождений памяти удалось избежать.

D>Это ничего что освобождение и выделение памяти происходит именно в функциях clear() и resize() совершенно аналогично тому, как в исходом примере делалось то же самое происходило в конструкторе и деструкторе?


Вас уже выше спросили, в какой это реализации stl так злобно начихали на reserve() ?
Re[8]: Частое выделение памяти - стоит ли этого бояться?
От: Dzirt2005  
Дата: 29.04.10 17:57
Оценка:
Здравствуйте, 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 году не было.
Re[6]: Частое выделение памяти - стоит ли этого бояться?
От: Dzirt2005  
Дата: 29.04.10 17:59
Оценка:
Здравствуйте, _stun_, Вы писали:

__>Здравствуйте, Dzirt2005, Вы писали:


__>Вас уже выше спросили, в какой это реализации stl так злобно начихали на reserve() ?


Я там ответил...
Re[9]: Частое выделение памяти - стоит ли этого бояться?
От: _stun_ Россия  
Дата: 29.04.10 18:27
Оценка: +3 :)
Здравствуйте, Dzirt2005, Вы писали:

D>Очень-очень старая Hewlett-Packard'овская, шедшая с одним из компиляторов Borland C++ под DOS. А что?


Я, в принципе, и так понял, что Вы ответите.
Да ничего. Просто, строго говоря, это не C++ и не STL.
Re: vector<>clear
От: Bell Россия  
Дата: 30.04.10 01:51
Оценка:
Здравствуйте, TailWind, Вы писали:

В связи с возникшими спорами про vector::clear: давным давно это обсуждали здесь
Автор:
Дата: 30.12.03
Любите книгу — источник знаний (с) М.Горький
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.