Форум программистов, компьютерный форум 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 //Обьявить динамический массив.Заполнить его целыми и вещественными числами. //ВВывести на экран массив(оформить как функцию). //если элемент вещественный оставить его без изменения,если целый ,то прибавить к нему0.1(оформить как функцию). #include <iostream> using namespace std; void print(float *mas,float n)//функция печати массива на экран { cout<<"Масив: "; for(int i = 0; i < n; i++)... подробнее

Показать сообщение отдельно
sim1246
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 8
14.05.2014, 10:40     Std::set( vector ) и расход памяти
Здравствуйте!
Пытаюсь разобраться сколько памяти съедают контейнеры и никак не могу понять следующее. Вот есть код( ниже)
В конце стоит бесконечный цикл(знаю что так делать нельзя) только для того чтобы в таск менеджере посмотреть сколько памяти мы съели.
На экран выводится:
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){}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru