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

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

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

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

31.05.2012, 15:30. Просмотров 382. Ответов 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()
Посмотрите здесь:

Код не работает как метод... C++
Как работает метод Пузырька? C++
метод гауса..обьясните как работает программа C++
C++ file.clear();
C++ задача найти преимущества использования контенеров vec и set
vector.clear C++
OpenCv 2 4 7 Ошибка при создании файла vec C++
Метод работает как то не понятно C++
Как работает метод get и putback (Подсчитать количество символов ввода вплоть до значения '$') C++
C++ Не срабатывает метод класс Clear();
Cin.clear() не работает? C++
Как работает метод ignore C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 Посмотреть сообщение
Разве освобождение памяти, не возвращает память системе?
В целях оптимизации, уменьшение размера контейнера может быть не связанно с возвращением памяти системе.
Yandex
Объявления
31.05.2012, 15:51     как работает метод vec.clear()
Ответ Создать тему
Опции темы

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