|
|
|
Проблема с присвоением итератора
|
|||
|---|---|---|---|
|
#18+
Компилятор Microsoft Visual C++ v8 Минимальный код для воспроизведения проблемы следующий: Код: 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. Ошибка C2679 вылетает на строчке (2) на этапе компиляции. Ошибки не вылетает, если на строчке (1) изменить iterator на const_iterator, но мне нужен именно неконстантный итератор. Я бы ещё поверил, что в листе нет обычного итератора, но например вот такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. работает на ура. Почему так можно, а внутри метода класса нельзя? На всякий случай полный текст ошибки: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 09:53 |
|
||
|
Проблема с присвоением итератора
|
|||
|---|---|---|---|
|
#18+
Тилир wrote: > const vector_of_lists& G; вот из-за этого. вот тут: >list_it = G.adj[v].begin() Нельзя получить неконстантный итератор, пока будет слово const в объявлении. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 10:07 |
|
||
|
Проблема с присвоением итератора
|
|||
|---|---|---|---|
|
#18+
ErV правельно написал, но добалю пару строк: То что вам требуется неконстантый итератор нарушает вашу схему. Так как ссылка на переданный объект является константной, предпологается, что класс не будет его как-либо модифицировать. list вам в этом помогает, и поэтому для костантного объекта он возвращает константный итератор. Пересмотрите причины из-за которых установлено const и вы возможно поймете, что компилятор спасает вас от ошибок во времени выполнения программы. Или же const указано не верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 10:50 |
|
||
|
Проблема с присвоением итератора
|
|||
|---|---|---|---|
|
#18+
ErV, Спасибо за указание на ошибку. Я почему-то сам этого не заметил, и без вашей помощи наверное долго бы ещё на неё глядел. Akh, Проблема действительно была в архитектуре, разрешилась введением дополнительно к итератору const-итератора и разделением их функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=289&tid=2028648]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 392ms |

| 0 / 0 |
