Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Новые сложные задачи на C++, Автор: Герб Саттер |
Автор: cardinal 10.7.2006, 18:06 |
![]() Рецензия на главы из книги „Новые сложные задачи на C++“ Автор: Герб Саттер. ISBN 5-8459-0823-X http://www.williamspublishing.com/Books/5-8459-0823-X.html Вот главы предоставленные издательством: http://forum.vingrad.ru/books/slojnue_zadachi_cpp/Chap05.doc http://forum.vingrad.ru/books/slojnue_zadachi_cpp/Chap07.doc В главе «Оптимизация и эффективность» автор рассматривает три вопроса: об использовании ключевого слова const, ключевого слова inline и об эффективности использования памяти для хранения данных программы. Довольно убедительно показано, что использование ключевого слова const практически никак не влияет на способность компилятора повысить быстродействие кода программы, в то время как многие программисты считают иначе. Чтение раздела, посвященного вопросам встраивания кода (inlining), позволило мне шире взглянуть на устройство современных компиляторов. Так в главе показано, что не только сам компилятор генерирует исполняемый код, но впоследствии и редактор связей (linker) может вносить в него свои коррективы. На своем опыте неоднократно убеждался в том, что, например, Borland C++ 5.5 при компиляции выдает ассемблерный код, которого вы потом не находите в результирующем загрузочном модуле. Жаль только, что часто вы об этом и не подразумеваете. А это может приводить к трудноуловимым проблемам, особенно в embedded приложениях. Ну, и, наконец, вопрос об эффективности упаковки данных – это отличная иллюстрация того, как полезно перед собственно написанием программы продумать ее структуру. Глава «Изучение конкретных примеров» вызвала у меня противоречивые чувства. С одной стороны действительно полезно разобрать и оценить положительные и отрицательные стороны программ, написанных другими людьми, попробовать найти пути их улучшения. С другой стороны, представляется не слишком серьезным, поиск описок и пропуск букв в названиях включаемых файлов. Автор неоднократно рекомендует интенсивнее использовать элементы стандартных библиотек для повышения удобочитаемости программного кода. Но ведь многие программисты из своего опыта знают, что часто элементы стандартных библиотек у разных компиляторов могут быть реализованы не слишком эффективно и собственная оптимизация пары функций может дать существенный выигрыш в скорости работы всей программы. Тем не менее, я с интересом прочитал эти две главы книги, любезно предоставленные издательством «Диалектика-Вильямс» и надеюсь, что и в остальных главах читатели найдут много полезных сведений для своей практической работы. |
Автор: Daevaorn 10.7.2006, 18:50 |
Эта книга как первая чать, да что там, вся серия выше всяких похвал. Что касается непосредственно "Новых сложных задач", то мне она показалась менее содержательной чем первая. Нет, это не минус, просто в первой было больше вещей охвачено, больше областей затронуто. А так, Саттер отличный программист, и как не странно, очень хороший автор книг. Рекомендую всем, столько тонкостей и нюансов языка вы не узнаете больше нигде! ![]() |
Автор: SergeCpp 13.7.2006, 15:05 |
http://ders.stml.net/cpp/xcppcomm/xcppcomm.html#intro http://ders.stml.net/cpp/ |
Автор: schmidt 10.8.2006, 13:26 |
А где можна найти его первую книгу, тоесть не ту которая Новый сложные задачи на С++ ? Поделистесь плз ссылочкой |
Автор: Sunr1se 10.8.2006, 13:32 |
http://anatolix.naumen.ru/Books/ExceptionalCPP?v=11d А вот она же, но на русском: http://prolaz-team.info/files/books/Gerb%20Satter%20-%20reshenie%20sl%20zadach%20na%20C++.rar |
Автор: WERITAS 17.9.2006, 00:43 |
Эээ...а где пароль в RAR-архиву? |
Автор: itan 21.9.2006, 11:02 |
Вот, нашел e-версию: http://www.bookshelf.ru/modules.php?name=Files&d_op=get_file_details&files_id=370 |
Автор: patience 21.10.2006, 00:51 |
можно пароль на архив? зарание спасибо. |
Автор: cardinal 21.10.2006, 03:12 |
Какой архив? Почитать можно только две представленные главы... |
Автор: likehood 23.10.2006, 22:32 |
Пароль: www.bookshelf.ru |
Автор: Любитель 4.11.2006, 14:32 |
Это ссылка на "Решение сложных задач на C++". Это другая (более старая) книга. А та что на bookshelf выдаёт HTTP 403 (нет прав). То же видим даже на просто www.bookshelf.ru. Если у кого-то есть электронная русская версия - просьба выложить. |
Автор: Любитель 15.12.2006, 15:12 |
Вспомнил сейчас про эту тему. У меня есть эта книга в электронном виде (на русском). Если кому интересно, могу выложить, вот только не знаю куда (здесь она вряд ли пройдёт ограничение по размеру). |
Автор: zabivator 16.12.2006, 15:53 |
Осилил вчера таки эту книжку до конца =) Must read. |
Автор: paSha_X 19.12.2006, 19:06 |
На сайте www.prolaz-team.info есть сообщение по этому поводу: "Все пароли на книги хранятся на сайте, не доставайте админов...............", под ним есть комментарии там написан пароль... ЗС на всякий случай сдесь его не писал |
Автор: PoloS 12.1.2007, 14:24 |
в предисловии к книге встретил вот что: одинаково ли действие "f(a++);" и "f(a); ++a;". Ответ нет. не могу понять почему? ![]() |
Автор: zkv 12.1.2007, 17:05 | ||
PoloS, попробуй откомпилировать следующий код:
|
Автор: RatHat 12.1.2007, 17:12 | ||
компилил в билдере) а = 2 )))) |
Автор: zkv 12.1.2007, 17:39 | ||
ну так он предупреждение выдает, тогда скажем так:
|
Автор: Xenon 12.1.2007, 17:46 |
Фишка,я так понимаю, в void f( int &a ) При void f( int a ) вроде как, точно пофиг |
Автор: Vsts 12.1.2007, 19:59 | ||||
это нармальными компиляторами не собираеться...вот так лучше
|
Автор: PoloS 12.1.2007, 20:16 |
Спасибо, разобрался =) |
Автор: Daevaorn 12.1.2007, 21:13 | ||
это ещё цветочки ![]() ![]() |
Автор: Любитель 14.1.2007, 13:43 |
Зато иногда приятно ощущать себя идиотом ![]() |
Автор: cardinal 5.4.2007, 21:20 |
scai, наш форум сотрудничает с издательством, поэтому ссылки на халяву не приветствуются. |
Автор: andrew_121 15.6.2008, 15:37 |
Вот представляю еще одну задачку. Где-то в инете нарыл: Есть две деревни: деревня магов и деревня гномов. Раз в год маги проходят по деревне гномов и выстраивают их по росту в возрастающем порядке, так что каждый гном может видеть только тех, кто ниже его самого. У магов неограниченное количество чёрных и белых шляп. Они одевают белую или черную шляпу на голову каждого гнома. Затем, начиная с самого высокого гнома (в конце шеренги), они спрашивают его, какого цвета шляпа не нём надета. Если гном ошибается, маги убивают его (другие гномы слышат его ответ, но не могут определить, был ли он убит или нет). Какой стратегии должны придерживаться гномы, чтобы минимизировать количество убиенных гномов? Каково максимальное количество гномов, которые будут убиты при использовании оптимальной стратегии? Мне сюжет понравился. Как в сказке какой-то...интересно та как ) Интересно у кого какой ответ ) |
Автор: Lazin 15.6.2008, 16:49 |
andrew_121, а причем тут С++ и Саттер с его книгами ![]() |
Автор: andrew_121 15.6.2008, 18:33 |
Lazin - У него в книге этой задачи НЕТ. Ну вот, дополнил ))) |
Автор: fish9370 15.6.2008, 19:29 | ||
если придерживаться стандартной логики, рядом стоящий гном уж точно знал какая у того шляпа, и прекрасно видел замочили его другана или нет.. он шепчет на ухо рдом стоящему о цвете его шляпы, а тот ему.. так делает вся коллона.. при учете, что ни один гном не делжал зла на рядом стоящего и дал ему правильную информацию (либо он перепроверил ее у гнома с другой стороны) может пострадать только один гном (которого первого спросили, которому не успели шепнуть).. уж больно, что-то просто.. тут должен быть какой-то подвох.. ![]() |
Автор: bronislav 15.6.2008, 21:11 |
Вообще-то задача решается с помощью четности. При правильной стратегии максимум умрет 1 гном. Добавлено через 1 минуту и 57 секунд гномы не согут переговариваться между собой Добавлено через 3 минуты и 54 секунды Стратегия такая: Гном считает количество черных шляп, и если их количество четное, то он говорит черная, если нет то белая Следующий гном слыша, что сказал предидущий делает вывод. Считает шляпы, которые видит сам, если четность изменилась, значит на нем черная шляпа, если нет - белая. |
Автор: rrrFer 26.6.2008, 10:26 |
удалено(не заметил) |
Автор: triclosan 27.8.2008, 13:46 |
+5коп. книга легко читается - проскакивает хороший юмор, несмотря на то, что в ней поднимаются серьезные и тонкие вопросы. Видимо это в первую очередь заслуга литредактора. Оригинал не смотрел, любопытно как там. |
Автор: disputant 4.12.2011, 11:20 | ||
Литредакторы смысл не правят - только исправляют стилистику - ну, например, слишком частые повторения слов и т.п. Но добавить какой-то юмор литредакторы не могут. Так что юмор - это заслуга автора и переводчика... |