Size: a a a

IT KPI C/С++ ХВ (хорошо, что не UB)

2020 January 29

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
aaa
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
ну ладно, не прочитал нормально)
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
push_front
:D
источник

A

András in IT KPI C/С++ ХВ (хорошо, что не UB)
Мимо. Він на ітовій операції видаляє ітовий елемент, а потім його вставляє на ту ж саму позицію
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
🌚ска
источник

ВИ

Владимир Ильич in IT KPI C/С++ ХВ (хорошо, что не UB)
Владимир Ильич
а теперь к более приземлённым вопросам:

у меня есть цикл по элементам листа, мне нужно вначале итерации удалить оттуда элемент, сделать операцию над всем списком(без этого элемента), а потом вставить его назад, на то же место и увеличить итератор на один

auto it = lst.begin();
auto end = lst.end();
while (it != end) {
 auto val = *it;
 auto next = lst.erase(it);
 // preform some op
 it = lst.insert(next, val);
 ++it;
}


но чёто все время it - один и тот же элемент.
короче говоря, я нашёл ошибку, просто у меня в коде не было ++it в конце
источник

A

András in IT KPI C/С++ ХВ (хорошо, что не UB)
Владимир Ильич
а теперь к более приземлённым вопросам:

у меня есть цикл по элементам листа, мне нужно вначале итерации удалить оттуда элемент, сделать операцию над всем списком(без этого элемента), а потом вставить его назад, на то же место и увеличить итератор на один

auto it = lst.begin();
auto end = lst.end();
while (it != end) {
 auto val = *it;
 auto next = lst.erase(it);
 // preform some op
 it = lst.insert(next, val);
 ++it;
}


но чёто все время it - один и тот же элемент.
А ти роби не it++, а it = next
источник

ВИ

Владимир Ильич in IT KPI C/С++ ХВ (хорошо, что не UB)
мда, у вас тоже с опытом тупые ошибки никуда не уходят?
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
Владимир Ильич
короче говоря, я нашёл ошибку, просто у меня в коде не было ++it в конце
источник

A

András in IT KPI C/С++ ХВ (хорошо, что не UB)
Владимир Ильич
а теперь к более приземлённым вопросам:

у меня есть цикл по элементам листа, мне нужно вначале итерации удалить оттуда элемент, сделать операцию над всем списком(без этого элемента), а потом вставить его назад, на то же место и увеличить итератор на один

auto it = lst.begin();
auto end = lst.end();
while (it != end) {
 auto val = *it;
 auto next = lst.erase(it);
 // preform some op
 it = lst.insert(next, val);
 ++it;
}


но чёто все время it - один и тот же элемент.
Бо мені здається, що тут уб
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
я только что дважды наебнулся с пушбэком и пушфронтом
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
ты о чем ваще :DD
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
András
Бо мені здається, що тут уб
не, норм
источник

A

András in IT KPI C/С++ ХВ (хорошо, что не UB)
Після lst.erase() it посилається на місце в пам'яті, яке не зарезервоване
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
ну да
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
ну it инитит новым значением после insert
источник

A

András in IT KPI C/С++ ХВ (хорошо, что не UB)
А, він перезапусує іт. Тоді норм
источник

B

Bogdan in IT KPI C/С++ ХВ (хорошо, что не UB)
Alexander Pavlyuchuk
но попытаюсь на прологе сделать
Ты не понял, ты типо пишешь свой пролог
источник

AP

Alexander Pavlyuchuk in IT KPI C/С++ ХВ (хорошо, что не UB)
Bogdan
Ты не понял, ты типо пишешь свой пролог
зачем мне писать свой пролог, если я могу заюзать пролог :DD
источник

A

András in IT KPI C/С++ ХВ (хорошо, что не UB)
Bogdan
Ты не понял, ты типо пишешь свой пролог
Ну так компілятор до мови А, часто пишуть на мові А))
источник