170 похожих чатов

У меня есть константная функция, которая вычисляет некоторые элементы в

контейнере и возвращает константные итераторы на них. Но есть проблема, как потом с ними работать? Сама функция никаких действий не совершает, значит должна быть константой, но извне потом тоже никаких действий над константными итераторами совершить нельзя. Подскажите, пожалуйста, есть какое-то нормальное решение этой проблемы?

13 ответов

23 просмотра

Сделать неконстантную перегрузку

Elnee-あめ Автор вопроса
Danya🔥
Сделать неконстантную перегрузку

То есть если вызываешь её не для просто посмотреть, а для изменений потом, то она будет неконстантные итераторы возвращать, верно?

Elnee あめ
То есть если вызываешь её не для просто посмотреть...

если передаешь неконстантные элементы будет вызываться неконстантная функция

Elnee あめ
То есть если вызываешь её не для просто посмотреть...

Если у тебя объект константный, то вызовется константная перегрузка Иначе неконстантная

Elnee-あめ Автор вопроса
Danya🔥
Если у тебя объект константный, то вызовется конст...

Но тогда придётся код функции полностью продублировать?

Elnee あめ
Но тогда придётся код функции полностью продублиро...

А зачем вообще констатная перегрузка? И метод что, возвращает итератор на член контейнера?

Elnee-あめ Автор вопроса
Liber Azerate
А зачем вообще констатная перегрузка? И метод что,...

Функция выбирает (допусти рандомно) несколько элементов в контейнере и возвращает итераторы на них. Вот отсюда и проблема. Что я хочу сделать её константной, но тогда придётся решать проблемы с тем, что захочется извне что-то поменять с ними, а этого нельзя сделать если с константным итератором.

Elnee あめ
Функция выбирает (допусти рандомно) несколько элем...

Ну, это кажется вообще немного не очень идеей. Ещё инвалидируются итераторы

Elnee-あめ Автор вопроса
Liber Azerate
Ну, это кажется вообще немного не очень идеей. Ещё...

Ну они промежуточно нигде храниться не будут, я понимаю что могут инвалидироваться.

Elnee-あめ Автор вопроса
Liber Azerate
Ну, это кажется вообще немного не очень идеей. Ещё...

А что тогда делать? Вернуть индексы просто?

Elnee あめ
А что тогда делать? Вернуть индексы просто?

Да, так точно не будет проблем с неконстантной перегрузкой, по крайней мере

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта