C vs. C++ (Концепция итераторов в C++, STL и т.д.)
Модератор: Модераторы разделов
-
nikita Moroz
- Сообщения: 54
- ОС: Linux
C vs. C++
Как в С++ использовать maxint(что надо include, что-бы использовать эту константу?)
-
Zeus
- Сообщения: 694
Re: C vs. C++
Код: Выделить всё
#include<limits>
std::numeric_limits<int>::max();Как-то так.
-
nikita Moroz
- Сообщения: 54
- ОС: Linux
Re: C vs. C++
А нельзя просто values.h подключить?
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: C vs. C++
Это не через шаблоны - не круто.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: C vs. C++
values.h - вообще устаревший заголовок... вместо него следует подключать limits.h
Ну а поскольку речь идёт о C++, то стоит использовать преимущества его библиотеки - в данном случае std::numeric_limits из "limits".
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: C vs. C++
А можно, для самых маленьких, объяснить чем std::numeric_limits<int>::max() превосходит INT_MAX, кроме времени компиляции? Про использование внутри шаблонов и generic-методов понятно - в данном случае 99% вероятность, что нужна обычная константа.
-
Zeus
- Сообщения: 694
Re: C vs. C++
Чтобы код был плюсовый, а не сишный, наверное 
Вот это:
мне видится кодом на С
а это
C++
Вот это:
Код: Выделить всё
if (c==INT_MAX)
{
};мне видится кодом на С
а это
Код: Выделить всё
if (c == std::numeric_limits<int>::max())
{
}C++
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: C vs. C++
v04bvs, ты предлагаешь в очередной раз начать флейм "C vs. C++"?
-
Liksys
- Сообщения: 2910
Re: C vs. C++
serzh-z, смысла в этом нет, ибо делает по части C++/ООП Python и SmallTalk 
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
-
Zeus
- Сообщения: 694
Re: C vs. C++
А мне что-то кажется, что если мы пишем плюсовую программу, то мы должны рассчитывать только на #include<limits> и шаблонов из него.
Или я ошибаюсь?
Или я ошибаюсь?
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: C vs. C++
Вроде бы стандарт С++ это стандарт С (правда не последний) и плюсовые дополнения. Т.е. используя С++ мы имеем полный С. Да и странно было бы, если бы это было неправдой.
-
Liksys
- Сообщения: 2910
Re: C vs. C++
Согласен, если уж пишешь, то надо придерживаться одного стандарта, а не изобретать костыли или брыть из других языков что-то. C++ вообще говоря вполне самостоятельный и великолепный язык, но жтого многие не знают, поскольку пишут на жуткой смеси C и C++.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: C vs. C++
В дисгармонии со вселенной.
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: C vs. C++
Ребятки... С и С++ -- это разные языки. Чисто для прикола, посмотрите вот на этот код
Он знает, как что его скомпилировали, как Сяшную программу или как С++шную.
Смешивать эти два языка -- это як казаты на эдаком суржике, понятно, конечно, но хто ж его знает, шо будэ, если разок не поймут...
Код: Выделить всё
#include<stdio.h>
int main()
{
printf("%s\n", (sizeof('a') == sizeof(char)) ? "C++" : "C");
return 0;
}Он знает, как что его скомпилировали, как Сяшную программу или как С++шную.
Смешивать эти два языка -- это як казаты на эдаком суржике, понятно, конечно, но хто ж его знает, шо будэ, если разок не поймут...
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: C vs. C++
Uncle_Theodore писал(а): ↑18.11.2007 03:59printf("%s\n", (sizeof('a') == sizeof(char)) ? "C++" : "C");
Грязный хак. Незаработает ни в хрюше(где я сейчас нахожусь MSVC), ни в моей mandrive(там у русской а два символа)
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: C vs. C++
Не получится. C++ недостаточно самостоятельный, чтобы не брать из C, но реализовано это таким образом, что назвать C++ великолепным -- язык не поворачивается.
Конкретно на счет INT_MAX или std::numeric_limits<int>::max() -- разница только при использовании generic programming. Я, например, в обычном коде предпочитаю INT_MAX, так короче и понятней.
Мои розовые очки
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: C vs. C++
watashiwa_daredeska писал(а): ↑18.11.2007 14:05Конкретно на счет INT_MAX или std::numeric_limits<int>::max() -- разница только при использовании generic programming. Я, например, в обычном коде предпочитаю INT_MAX, так короче и понятней.
получится. просто ты язык слабо знаешь
-
Zeus
- Сообщения: 694
Re: C vs. C++
drBatty писал(а): ↑18.11.2007 14:04Uncle_Theodore писал(а): ↑18.11.2007 03:59printf("%s\n", (sizeof('a') == sizeof(char)) ? "C++" : "C");
Грязный хак. Незаработает ни в хрюше(где я сейчас нахожусь MSVC), ни в моей mandrive(там у русской а два символа)
У меня в Fedora Core 5 "заработало".
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
-
Zeus
- Сообщения: 694
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
Zeus
- Сообщения: 694
-
Liksys
- Сообщения: 2910
Re: C vs. C++
Я тоже, кстати. Всю жизнь в C sizeof(char) возвращал 1
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: C vs. C++
Тем, у кого не заработало, 'a' тут английское. Ну или смените на 's', чтобы не путаться.
А вообще, я рад, что вам понравилось...
А вообще, я рад, что вам понравилось...
-
Zeus
- Сообщения: 694
Re: C vs. C++
А откуда 4 байта-то взялось?
И это никак не зависит от кодировки?
И это никак не зависит от кодировки?
-
Vas
- Сообщения: 540
- Статус: Proamd-шник
- ОС: OpenSuSE 11.0 и OS X 10.5.4
Re: C vs. C++
+1 Увы таких много...
У нас в Унвере читают лекции используя словосочетание "язык си", причем содержание этих лекций представляет жуткую смесь си и си++.
А программируем мы в Visual C++. Только не под .NET, а под Win32.
И вы еще удивляетесь.. Я вообще уже перестаю понимать чем же они отличаются. Что уж говорить про основную массу студентов, которые кроме как Turbo Pascal ничего больше в жизни не видели.
Находя богатство - теряете совесть
Находя женщину - теряете рассудок
Находя истину - теряете веру
и только потеряв всё - находите свободу.
Находя женщину - теряете рассудок
Находя истину - теряете веру
и только потеряв всё - находите свободу.