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

Std::set( vector ) и расход памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для каждого столбца двумерного массива подсчитать сумму четных положительных элементов http://www.cyberforum.ru/cpp-beginners/thread1175459.html
III. Дан массив размером n×n, элементы которого целые числа. Замечание. Для хранения массив n×n использовать ступенчатый массив. Для каждого столбца подсчитать сумму четных положительных элементов...
C++ Поменять местами два средних столбца двумерного массива Дан массив размером n×n, элементы которого целые числа. Замечание:использовать двумерный массив. Поменять местами два средних столбца, если количество столбцов четное, и первый со средним... http://www.cyberforum.ru/cpp-beginners/thread1175457.html
C++ Отсортировать двумерный массив по главной и побочной диагонали.
#include <conio.h> #include <stdio.h> #include <stdlib.h> #include <locale.h> #include<time.h> int main() {
Стоит ли изучить программирование в стиле С? C++
Стоит ли изучит программирование в стиле С? В книге написано про строки в стиле С и настоятельно рекомендуется не использовать их при программирование. Так как я не хочу нагрузит себя не нужной...
C++ Утечка памяти в С++ (Borland C++ 3.1 под DOS) http://www.cyberforum.ru/cpp-beginners/thread1175368.html
Добрый день! Прошу помощи! Есть старая программа, которую мне надо адаптировать под новое оборудование. Но при выполнении выдает странные ошибки. Подозреваю, что где-то есть утечка памяти. Программа...
C++ Если элемент массива - вещественный оставить его без изменения, если целый, то прибавить к нему 0.1 //Обьявить динамический массив.Заполнить его целыми и вещественными числами. //ВВывести на экран массив(оформить как функцию). //если элемент вещественный оставить его без изменения,если целый ,то... подробнее

Показать сообщение отдельно
sim1246
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 8

Std::set( vector ) и расход памяти - C++

14.05.2014, 10:40. Просмотров 994. Ответов 17
Метки (Все метки)

Здравствуйте!
Пытаюсь разобраться сколько памяти съедают контейнеры и никак не могу понять следующее. Вот есть код( ниже)
В конце стоит бесконечный цикл(знаю что так делать нельзя) только для того чтобы в таск менеджере посмотреть сколько памяти мы съели.
На экран выводится:
size1= 0.4666; size2 = 1,430;
size3 = 4,1008
При этом в таск менеджере расход показывает 6,11
Если set заменить на вектор ( выделив ему память ровно столько сколько элементов )
то вывод останется таким же а в таск менеджере мы увидим число 3,45.
Почему в случае set памяти больше чем size3?
и меньше в случае вектора?
Спасибо
Upd в строке 3 vtos() преобразует число в строку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    
set<string> res;
    for(uint x = 0; x<100000;++x) res.insert( vtos(x,0) );
    uint result = 0;
    cout << "Res.size() == " << res.size() << endl;
    uint size1=0;uint size2=0;uint size3=0;
    set<string>::const_iterator it=res.begin();
    for(;it!=res.end();++it){
        string str = *it;
        size1+=str.size();
        size2+=str.capacity();
        size3+=str.capacity() + sizeof(string);
}
    cout << "size1 == " << ((float)size1)/1024/1024 << endl;
    cout << "size2 == " << ((float)size2)/1024/1024 << endl;
    cout << "size3 == " << ((float)size3)/1024/1024 << endl;
while(true){}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru