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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dqrest
2 / 2 / 0
Регистрация: 06.01.2012
Сообщений: 114
#1

как работает метод vec.clear() - C++

31.05.2012, 15:30. Просмотров 425. Ответов 1
Метки нет (Все метки)

Вот я тут читаю книгу по stl библиотеку про вектора, списки, очереди. Тут у меня возник вопрос, помогите плиз. Есть допустим vector<int> vec, в него мы поместили 1000000 штук int чисел, затем допустим мы сочли, что они нам больше не нужны, мы из удаляем, затем добавляем 1000000000 штук int чисел и т.д. Вопрос в том, что как лучше всего освобождать вот этот вектор, чтоб оперативную память не сожрал. Т.е. если мы применим vec.clear() b or vec.resize(0), то чувствую, что память физически не освободиться, как лучше всего это сделать????И в чем разница между тем, чтобы вернуть память системе, и освободить память. Разве освобождение памяти, не возвращает память системе? Если не так, то ответьте, пожалуйста, что происходит при освобождении памяти и при возврате памяти системе. Кажется, что это тоже самое и для деструкторов классов....Неужели после того, как сработает деструктор, который освобождает память, не вернет память системе. И вообще, нужно ли возвращать память системе???
Вот псевдокод


C++
1
2
3
4
5
6
7
8
9
void main()
{
  for(int i=0;i<9999999;i++)
  {
    
    func1();//  выделяется память для 1000000 int под вектор
    func2();//нам этот вектор не нужен, освобождаем память  
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 15:30     как работает метод vec.clear()
Посмотрите здесь:

Не срабатывает метод класс Clear(); - C++
День добрый форумчане, подскажите пожалуйста почему не срабатывает в обычном режиме метод класса Clear(); А если прогонять через отладку...

Cin.clear() не работает? - C++
Почему cin.clear() не работает как надо? ( не очищает поток ). Если мы вводим например 3 значения (123) то цикл срабатывает 3 раза. while...

OpenCv 2 4 7 Ошибка при создании файла vec - C++
Что обозначает эта ошибка и как её исправить ?

задача найти преимущества использования контенеров vec и set - C++
Пока не нашел особо больших кординальных преимуществ set'a . В учебнике предлагают решить такой пример: Вводим слово-исключение, если...

Как работает метод Пузырька? - C++
Добрый день, господа... Делаю задание по сортировке массива... Нашел вот эту статью -...

Код не работает как метод... - C++
День добрый! есть код: CoInitialize(NULL); * *if(CoInitializeSecurity( NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_PKT,...

Как работает метод ignore - C++
Метод ignore удаляет один или несколько символов из области ввода, адрес которой задана первым параметром в методи getline.

Метод работает как то не понятно - C++
template &lt;typename TBase&gt; bool TArray &lt;TBase&gt;:: Addition (TBase s ) { ...

метод гауса..обьясните как работает программа - C++
ipMatr(); for(opMatr(),k=0;k&lt;=n;k++) //прямой ход метода Гаусса; {for(aa=fabs(a),i=k,j=k+1;j&lt;=n;j++)//поиск макс....

Как работает метод get и putback (Подсчитать количество символов ввода вплоть до значения '$') - C++
Задание простое: подсчитать количество символов ввода вплоть до значения '$', и оставить '$' во входном потоке. Вот готовое решение: ...

file.clear(); - C++
Что выполнит данная команда? ifstream file(&quot;file.txt&quot;); file.clear();

vector.clear - C++
У меня вопрос по поводу метода clear(). Пусть у меня в векторе было 30 элементов, после вызова этого метода их стало 0, поэтому size() тоже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
31.05.2012, 15:51     как работает метод vec.clear() #2
Цитата Сообщение от dqrest Посмотреть сообщение
как лучше всего это сделать?
C++
1
2
3
4
5
6
7
8
std::vector<int> v;
//.. работаем, выделяем
 
{
   // обнуляем вектор
   std::vector<int> temp;
   v.swap(temp);
}

Цитата Сообщение от dqrest Посмотреть сообщение
Разве освобождение памяти, не возвращает память системе?
В целях оптимизации, уменьшение размера контейнера может быть не связанно с возвращением памяти системе.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru