изучаю STL, вопросы по распределению памяти
От: zdx  
Дата: 14.02.05 11:45
Оценка:
Начал изучать STL.

Лазил тут по форуму и появился вопрос для модераторов:
А не сделать ли отдельную ветку форума "STL/BOOST", есть же например ATL/WTL.
Ну это так, к слову (наверное я уже 151-ый такой умный по этому поводу)

Собственно вопрос следующий.

допустим есть:

struct stlstruct
{
    CString str1;
    int     num;
    char   rrr[1000000];

};


Я создаю :


vector< stlstruct > vStlStr;
..............

void CSTL1Dlg::AddElem() 
{
   stlstruct addtemp;
    
    addtemp.str1 = "string1";
    addtemp.num = 1;
    
    vStlStr.push_back (addtemp);
}

...............

void CSTL1Dlg::OnClear() 
{
    vStlStr.clear ();
}


Все работает нормально. Но в структуре есть член rrr[1000000]
Так вот при каждом добавлении в вектор "push_back (addtemp)" в диспетчере задач видно, память, которую жрет прога
увеличивается грубо на 1 кб.

А если сделать vStlStr.clear ();, то в диспетчере видно, что память, занимаемая прогой не освобождается.
Что делать: — 1) я чего то упустил в данном примере
2) начать изучать аллокаторы (хотя я пока смутно представляю, зачем они нужны)
3) говорить что кривой диспетчер

спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.