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

Оптимизация. static объекты - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить метод решения матрицы http://www.cyberforum.ru/cpp-beginners/thread437589.html
Доброго времени суток! Есть код программа, которая решает систему уравнений. Помогите, пожалуйста, определить какой именно способ (метод Крамера или Гаусса) для решения систем уравнения в этом коде описан. Вот сам код: //Найдем решение системы this->find_solve(N); } void systems::find_solve(unsigned char current){ if(!det(current)){ printf("Error #4\n"); return ;
C++ Поиск наибольшего и наименьшего значения в массиве. Как в одномерном массиве a найти наибольшее и наименьшее числа ? :) http://www.cyberforum.ru/cpp-beginners/thread437555.html
Не работает программа C++
Код взят из книжки по С++. В Visual C++ этот код не пашет. Выдает проглеммы с подключением библиотек. Проблемма в коде или в компиляторе? Выводит 1>d:\visual studio c++ express edition\vc\include\streambuf.h(6): fatal error C1083: Не удается открыть файл включение: xiosbase: No such file or directory Но при этом все эти файлы на месте! что делать??
открыть obj файл C++
Собственно в чем проблемма :Есть obj файл мне нужно его открыть и посматреть код.При открытии файла какието неподержываемые символы есть а кода нет.Как можно мне его открыть?
C++ как следить за числом с плавающей запятой? http://www.cyberforum.ru/cpp-beginners/thread437484.html
к примеру у меня есть число,и к нему постоянно прибавляют дроби.У этого числа увеличивается часть с плавающей запятой следовательно.Так вот мне нужно прекратить прибавлять дроби к этому числу,если цифр после запятой больше 4. Как мне так сделать?Помогите?
C++ Как перевести из символа в число и после наоборот Доброго Вам времени суток форумчане! Сразу к делу. Сталкнулся с проблемой в учебнике Лафоре есть пример //parse.cpp разбор арифметического выражения Так вот я его собрался сделать но сам по своему. Вот что получилось: #include<iostream> #include<string> #include<conio.h> const int ciMAX = 100;... подробнее

Показать сообщение отдельно
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133

Оптимизация. static объекты - C++

29.01.2012, 21:12. Просмотров 944. Ответов 3
Метки (Все метки)

Страуструп написал такую функцию для его книги "принципы и практика использования C++":
( обратите внимание на массив SuffixMap )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Suffix::Encoding get_encoding(const string& s)
{
    struct SuffixMap 
    { 
        const char*      extension;
        Suffix::Encoding suffix;
    };
 
    static SuffixMap smap[] = {
        {".jpg",  Suffix::jpg},
        {".jpeg", Suffix::jpg},
        {".gif",  Suffix::gif},
    };
 
    for (int i = 0, n = ARRAY_SIZE(smap); i < n; i++)
    {
        int len = strlen(smap[i].extension);
 
        if (s.length() >= len && s.substr(s.length()-len, len) == smap[i].extension)
            return smap[i].suffix;
    }
 
    return Suffix::none;
}
В этой функции создается массив static SuffixMap smap[].
Почему он статический? Потому что большой и чтобы его каждый раз не создавать его сделали статическим?
Вообще когда надо делать большие неизменяемые( как этот ) объекты статическими?
Если мы знаем, что функция вызывается много раз, то тут вроде как понятно, что надо сделать объект статическим. Но ведь не всегда известно сколько раз будет вызываться функция.
Это ведь эквивалентно выделить память и не освобождать ее до конца выполнения программа. Только массив находится в статической памяти, а выделенная память в куче. Но все равно в итоге и в той и в другой памяти это занимает место.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru