| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > вопросы по синтаксису |
| Автор: nexen 20.7.2009, 02:21 | ||
выведет vecror s created with size 10! 8, 1, 9, 2, 0, 5, 7, 3, 4, 6 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Для продолжения нажмите любую клавишу . . . p.s. это моё первое знакомство с с++ - делаю простые упражнения усложняя их самостоятельно. вопрос - насколько грамотно написан этот код , что лишнее, чего нехватает, правильно ли обьявлены типы? ОС windows компиллятор gcc (dev-cpp). |
| Автор: Cheloveck 20.7.2009, 06:46 | ||
Если b меньше c - 1, то ничего не делаем, иначе cval_a присваивается символ перехода строки. Глупость какая-то =) Такой синтаксис используется когда 2, и только 2, варианта, например
Первая позиция в for специально для того, что бы объявлять переменную, если ты не собираешься её использовать за пределами цикла, то такая запись не красивая. P.S. Побежал на работу, дальше смотреть некогда уже((( |
| Автор: GoldFinch 20.7.2009, 07:36 | ||||||
вместо
можно
или
вместо a. b, c лучше юзать осмысленные названия вместо iterator - const_iterator вместо использования a и с в цикле получать итераторы по-новой |
| Автор: andrew_121 20.7.2009, 08:01 | ||
Эти строки только путают. Смысла в них не вижу. Добавлено @ 08:06 Я бы сделал так:
|
| Автор: nexen 20.7.2009, 08:29 | ||||
ога - насчет i согласен и чё это я её вынес сам не пойму . . . , а насчет cval_a ты видимо проглядел обьявление string cval_a = ", "; p.s. int i = 0; - толкаю в цикл , - продолжаем катать дальше ! )) |
| Автор: andrew_121 20.7.2009, 08:44 | ||
Такая форма записи пугает новичков. Да и я ее использую только если другого способа нет. |
| Автор: azesmcar 20.7.2009, 08:47 |
честно говоря большой разницы между этой формой и for_each не вижу. ??? |
| Автор: mrbrooks 20.7.2009, 08:55 | ||||||
ога. а если так?
ы. |
| Автор: andrew_121 20.7.2009, 08:55 |
хз*...привычка наверное. |
| Автор: nexen 20.7.2009, 13:33 |
| всем спасибо огромное, - дома посмотрю, разберусь кстати, а зачем - std::copy(ivector.begin(), ivector.end(), std::ostream_iterator<int>(std::cout, "\n")); если можно единожды написать вверху using namespace std; и просто писать copy(ivector.begin(), ivector.end(), ostream_iterator<int>(cout, "\n")); может я не прав, но по моему так . . . p.s. сильно я не боюсь! )) - вобщем пока всё схватываю, - помогают навыки программирования на php и js всем огромное спасибо пишите ещё - буду рад запомнить, понять, освоить ! )) да пребудет с вами сила ! |
| Автор: azesmcar 20.7.2009, 13:39 | ||
Так, это вопрос стиля и привычки, так-как не очень правильно писать using namespace ... в заголовочных файлах - у меня выработалась привычка не писать его вообще. |
| Автор: zim22 20.7.2009, 13:40 | ||
так и делайте. пока не поймёте в чём зло глобальных using директив |
| Автор: mes 20.7.2009, 13:41 | ||
привыкать к такому не рекомендуется - допустимо только на маленьких тестовых программках. |
| Автор: azesmcar 20.7.2009, 13:43 |
ну cpp файле глобальный using никому (кроме себя любимого) не мешает, так что это индивидуально, а в заголовочных файлах - зло |
| Автор: GoldFinch 20.7.2009, 14:05 | ||
using namespace следует писать внутри функций и вообще блоков
|
| Автор: nexen 20.7.2009, 14:16 | ||
воооо - отлично, - уже какие то тонкости пошли , а в чем подвох то ? p.s. мне собсно без разницы я из класса извлеку - просто в чём соль то ? )) |
| Автор: azesmcar 20.7.2009, 14:22 | ||
потому что заголовочный файл может включить у себя кто-то другой и возможно ему не хочется видеть в своем пространстве имен cout, cin, list или map (хотя бы потому что у него уже есть такие классы/объекты). А вы его заставляете делать using. Нельзя же так...а вдруг он обидится |
| Автор: Cheloveck 20.7.2009, 16:14 | ||||||||||
Да нет, не проглядел. Просто синтаксис данной конструкции следующий
теперь сравни со своим получается, что в случае, если (b < (c - 1)) истина, то будет выполняться
иначе
в первом случае бесполезный код. Насчёт using namespace, пока не начал писать более или менее крупные проекты я его юзал. Но когда проекты стали состоять из множества модулей, а имена в них зачастую совпадали, я перестал их использовать. Сейчас не использую вообще. Единственное, что могу себе позволить, так это переименовать длинные пространства в более удобные, например
|
| Автор: nexen 20.7.2009, 16:37 |
| у меня уже совсем башка не варит - дома посмотрю - уверен , что ты прав я знаю, что это вобщем тот же if(){}else{} - видимо головой не думал совсем когда это писал |
| Автор: mes 20.7.2009, 18:14 | ||
имхо нежелательно использовать конструкции идущие против логики. она почти настолько же груба, как и : это вот нормальный вариант: как альтернатива, можно вынести одно условие из цикла :
|
| Автор: GoldFinch 20.7.2009, 18:41 | ||
еще можно так
|
| Автор: 586 20.7.2009, 19:01 | ||||||
тогда уж лучше так:
|
| Автор: GoldFinch 20.7.2009, 19:37 |
| 586, так уже было |
| Автор: nexen 21.7.2009, 20:03 |
| всем огромное спасибо - буду разбираться дальше |