Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.10.2017, 16:48
|
|||
|---|---|---|---|
|
|||
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
Предположим есть цикл, в котором создаются структуры и складываются в массив (я не привожу остального кода объекта, чтобы сконцентировать мысль на конкретном вопросе): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Беспокоит то, что структуры создаются в цикле и при переходе на следующую итерацию "теряют значения"(потому что происходит выход за их область видимости), а объект хранит ссылки на эти структуры. Не "обнулятся" ли все данные в массиве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 16:58
|
|||
|---|---|---|---|
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
AlekseySQLБеспокоит то, что структуры создаются в цикле и при переходе на следующую итерацию "теряют значения"(потому что происходит выход за их область видимости), а объект хранит ссылки на эти структуры. Не "обнулятся" ли все данные в массиве? Тут ссылку ты передаёшь в метод Add(), а этот метод в массиве сохраняет не ссылку, а копию объекта на который ссылается ссылка. Всё корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 17:01
|
|||
|---|---|---|---|
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
Ты хранишь не ссылки, а копии, т.к. это копирование Код: plaintext 1. и писать лучше так Код: plaintext 1. это тоже самое, но читабельнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 17:06
|
|||
|---|---|---|---|
|
|||
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
petrav и Dima T, спасибо! Вы молодечики:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 17:18
|
|||
|---|---|---|---|
|
|||
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
А если попытаться оптимизировать и принимать возвращаемое значение из функции по ссылке: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Во втором цикле я передаю структуру по ссылке, а не по значению, поэтому для крупных структур должно работать побыстрее. Правильно мыслю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 17:24
|
|||
|---|---|---|---|
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
AlekseySQL, я тут упустил кое что, но думаю понятно. Из GetValue нужно вернуть ссылку. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 17:36
|
|||
|---|---|---|---|
|
|||
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
petrav, спасибо, в книжке "Полный справочник С++" Шилдта приведен пример с ссылкой на возвращаемое значение функции только для вызовов функций, стоящих в левой части равенства. Оказывается есть и другой вариант заюзать ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 17:52
|
|||
|---|---|---|---|
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
ИМХО Велосипедостроением занимаешься. Возьми std::vector Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 18:26
|
|||
|---|---|---|---|
|
|||
Можно ли в массиве хранить ссылки на структуры созданные в теле цикла? |
|||
|
#18+
Dima TИМХО Велосипедостроением занимаешься. Возьми std::vector Велосипедостроениее- мое любимое занятие:) А если по- чесноку, то мой массив двумерный, и объект берет на себя задачи создания вложенных массивов и их удаления. К тому же моя поделка работает быстрее вектора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2018055]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 292ms |

| 0 / 0 |
