|
А почему так инициализация |
|
|
|
 |
Ответов
|
Jul 27 2018, 04:57
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(Forger @ Jul 26 2018, 19:18)  Раз пошла такая пьянка, то договаривайте )) вот что тут https://msdn.microsoft.com/ru-ru/library/zzw4bwhd.aspx Микрософт имел в виду в Код vector <int> v5(5); for (auto i : v5) { v5[i] = i; } и пишут, что v5 = 0 1 2 3 4 . А он нулевой будет в итоге, i это значения ветора по копии, а никак не индекс
|
|
|
|
|
Jul 27 2018, 05:42
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(Forger @ Jul 27 2018, 08:25)  По логике i тут должен быть int, для этого тут поставлен auto. Такая конструкция должна правильно работать уже с C++11. Или я что-то не понимаю? v5[i] = i; - это фигня полная. Выражение for (auto i : v5) пробежит по всему вектору, присваивая i последовательные значения из этого вектора. Это не индекс. Так как вектор создан нулевым, то это будет так : v5[0] = 0; v5[0] = 0; v5[0] = 0; v5[0] = 0; v5[0] = 0; 5 раз Если сделать Код vector <int> v5(5, 10); for (auto i : v5) { v5[i] = i; } то будет access violation ибо это v5[10] = 10; 5 раз подряд
|
|
|
|
|
Jul 27 2018, 06:44
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(DASM @ Jul 27 2018, 08:42)  Это не индекс. По-ходу i - это в данном случае итератор ... Попытался эти примеры прокомпилить в старом добром keil (компилятор v6). Примеры собирает, но отлаживать их вообще неудобно: вроде i по окну watch - int, а нифига - это действительно итератор. Пример и правда не работает, как ожидается (( Честно говоря, не использовал так активно штатные шаблоны (в частности std::vector). До умного for() так и не добрался. Выяснил, что они могут неявно использовать кучу. А кучу не использую, в известных целях (речь про обычные МК). В свое время как-то делал самописный iterator, for_each, умный указатель ... минимально необходимые. Недавно добрался до чудесной штуки - делегаты... В основном - в академических целях, но потом "проникся" )) Тогда использовал "старые" плюсы. Но в новых стандартах плюсов они уже есть и готовые (кроме делегатов), но, в очередной раз прихожу к выводу, что они адски "толстые", по крайней мере в применении к обычным МК. Мне лично из C++11 (для меня нового) пришлись по душе жесткие ограничения при неявном приведении типов - нужно ставить явный static_cast или переписывать код. Также пригодилась инициализация полей классов прямо в описании класса (например, какие-нить константы), т. е. максимально возможный уход от #define. const_expr - вообще чудесная штука. Также считаю полезными final и override.... Это пока то, что вспомнил с ходу. Вполне возможно, что негатив к C++ и его новым фишкам возникает в очень толстых проектах, где работает куча народу и каждый пытается показать другим, что он умеет. Полагаю, что если жестко ограничить применение тех или иных конструкций и выработав соотв. "правила", то негатива будет меньше
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
DASM А почему так инициализация Jul 24 2018, 18:43 aaarrr Потому что "the" по стандарту константа. Jul 24 2018, 18:46 ViKo Цитата(aaarrr @ Jul 24 2018, 21:46) Потом... Jul 24 2018, 18:52  aaarrr Цитата(ViKo @ Jul 24 2018, 21:52) А указа... Jul 24 2018, 18:54   DASM Цитата(aaarrr @ Jul 24 2018, 21:54) Указа... Jul 24 2018, 19:00    jcxz Цитата(DASM @ Jul 24 2018, 22:00) А почем... Jul 25 2018, 05:16     DASM Цитата(jcxz @ Jul 25 2018, 08:16) Согласе... Jul 25 2018, 15:22      Forger Цитата(DASM @ Jul 25 2018, 18:22) M... Jul 25 2018, 15:26    XVR Цитата(DASM @ Jul 24 2018, 22:00) А почем... Jul 25 2018, 07:58     jcxz Цитата(XVR @ Jul 25 2018, 10:58) Потому ч... Jul 25 2018, 10:20      XVR Цитата(jcxz @ Jul 25 2018, 13:20) Да ладн... Jul 26 2018, 12:42       Forger Цитата(XVR @ Jul 26 2018, 15:42) Единстве... Jul 26 2018, 12:56        XVR Цитата(Forger @ Jul 26 2018, 15:56) В дан... Jul 26 2018, 13:01         Forger Цитата(XVR @ Jul 26 2018, 16:01) А в чём ... Jul 26 2018, 13:03          XVR Цитата(Forger @ Jul 26 2018, 16:03) Что б... Jul 26 2018, 13:39           Forger Цитата(XVR @ Jul 26 2018, 16:39) Т.е. вы ... Jul 26 2018, 13:47    esaulenka Цитата(DASM @ Jul 24 2018, 22:00) А почем... Jul 25 2018, 09:56     Forger Цитата(esaulenka @ Jul 25 2018, 12:56) В ... Jul 25 2018, 10:02 DASM Цитата(aaarrr @ Jul 24 2018, 21:46) Потом... Jul 24 2018, 18:56 ViKo ЦитатаУказатель модифицировать можно, а вот содерж... Jul 24 2018, 18:59 Forger Цитата(DASM @ Jul 24 2018, 21:43) CODEstr... Jul 25 2018, 07:04 DASM Еще интересный вопрос возник. Как вам такая штука
... Jul 25 2018, 15:30 Forger Цитата(DASM @ Jul 25 2018, 18:27) Еще инт... Jul 25 2018, 15:30  DASM Цитата(Forger @ Jul 25 2018, 18:30) На из... Jul 25 2018, 15:31   Forger Цитата(DASM @ Jul 25 2018, 18:31) Стоп ст... Jul 25 2018, 15:39    DASM Цитата(Forger @ Jul 25 2018, 18:39) Разве... Jul 25 2018, 16:01     Forger Цитата(DASM @ Jul 25 2018, 19:01) Просто ... Jul 25 2018, 16:10      DASM Цитата(Forger @ Jul 25 2018, 19:10) Сочув... Jul 25 2018, 16:24       Forger Цитата(DASM @ Jul 25 2018, 19:24) Не, соч... Jul 25 2018, 16:33        DASM Цитата(Forger @ Jul 25 2018, 19:33) Ну, е... Jul 25 2018, 16:49         Forger Цитата(DASM @ Jul 25 2018, 19:49) проблем... Jul 25 2018, 17:05       jcxz Цитата(DASM @ Jul 25 2018, 19:24) Операци... Jul 25 2018, 20:30        Forger Цитата(jcxz @ Jul 25 2018, 23:30) Сурово ... Jul 25 2018, 20:35   jcxz Цитата(DASM @ Jul 25 2018, 18:31) Иначе в... Jul 25 2018, 16:19    Arlleex Цитата(jcxz @ Jul 25 2018, 19:19) Нормаль... Jul 25 2018, 16:31 DASM Ни разу не видел еще готовый проект с кучей доступ... Jul 25 2018, 17:41 Forger Цитата(DASM @ Jul 25 2018, 20:41) Ни разу... Jul 25 2018, 17:45  DASM Цитата(Forger @ Jul 25 2018, 20:45) Я тож... Jul 25 2018, 17:48   Forger Цитата(DASM @ Jul 25 2018, 20:48) А как п... Jul 25 2018, 17:52    DASM Цитата(Forger @ Jul 25 2018, 20:52) Под я... Jul 25 2018, 18:15     Forger Цитата(DASM @ Jul 25 2018, 21:15) Я вообщ... Jul 25 2018, 18:34      DASM Цитата(Forger @ Jul 25 2018, 21:34) В это... Jul 25 2018, 18:42 DASM БолгенОС уже была.. Jul 26 2018, 02:32 Arlleex Цитата(jcxz @ Jul 26 2018, 00:30) Это ана... Jul 26 2018, 04:49 DASM "С какой стороны будет "обрезана" с... Jul 26 2018, 14:20 Forger Цитата(DASM @ Jul 26 2018, 17:20) "С... Jul 26 2018, 14:22 DASM С литеральными все понятно и вопроса не было бы. Я... Jul 26 2018, 15:25 Forger Цитата(DASM @ Jul 26 2018, 18:25) Вот ... Jul 26 2018, 15:35  XVR Цитата(Forger @ Jul 26 2018, 18:35) У мен... Jul 26 2018, 19:40  DASM Цитата(Forger @ Jul 26 2018, 19:18) Раз п... Jul 26 2018, 16:43   Forger Цитата(DASM @ Jul 26 2018, 19:43) да нечи... Jul 26 2018, 17:12     Arlleex Цитата(DASM @ Jul 27 2018, 09:42) то буде... Jul 27 2018, 06:26      Herz Господа, пора бы остановиться, а? Очень не хочется... Jul 27 2018, 07:37 DASM i это не итератор, это локальная переменная типа э... Jul 27 2018, 07:29 Forger Цитата(DASM @ Jul 27 2018, 10:29) i это н... Jul 27 2018, 07:44 DASM Это int. Дома посмотрю, почему у Вас сомнения Jul 27 2018, 07:53 DASM Проверил, это точно int , собственно и сомнений не... Jul 29 2018, 12:15 Forger Цитата(DASM @ Jul 29 2018, 15:15) Провери... Jul 29 2018, 13:11  DASM Цитата(Forger @ Jul 29 2018, 16:11) Попро... Jul 29 2018, 15:32   Forger Заглумил я тут всех
Короче, увеличил кучу, все с... Jul 29 2018, 16:18 DASM "несколько непривычно для восприятия цикла fo... Jul 29 2018, 16:44 Forger Цитата(DASM @ Jul 29 2018, 19:44) мне неп... Jul 29 2018, 16:59 DASM ничего не понял. Предлагаете делать вектор на стек... Jul 29 2018, 17:08 Forger Цитата(DASM @ Jul 29 2018, 20:08) ничего ... Jul 29 2018, 17:15 esaulenka Я дико извиняюсь, но почему обсуждение стандартной... Aug 3 2018, 16:20 Forger Цитата(esaulenka @ Aug 3 2018, 19:20) Я д... Aug 3 2018, 16:47  XVR Цитата(Forger @ Aug 3 2018, 19:47) Другая... Aug 4 2018, 16:38   Forger Цитата(XVR @ Aug 4 2018, 19:38) Не надо. ... Aug 4 2018, 16:44 Kabdim Не стоит забывать что stl который с компилятором н... Aug 5 2018, 10:05 Forger Цитата(Kabdim @ Aug 5 2018, 13:05) EASTL
... Aug 5 2018, 15:20  Herz Цитата(Forger @ Aug 5 2018, 18:20) примен... Aug 5 2018, 18:53   Forger Цитата(Herz @ Aug 5 2018, 21:53) А просто... Aug 5 2018, 19:07 Herz По сути сказанного я с Вами полностью согласен.
Но... Aug 5 2018, 19:30 Forger Цитата(Herz @ Aug 5 2018, 22:30) то я пря... Aug 5 2018, 19:39 Herz Вот именно. Aug 5 2018, 19:48 Forger Цитата(Herz)чем буржуазный "экспириенс" ... Aug 5 2018, 20:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|