Если мы использовали make_move_iterator, то не нужно удалить пустой вектор, чтобы освободить память?Можно ли написать:Iterator ib = s.begin();iterator ie = s.end(); for (; ib != ie; ++ib) delete *ib; ?
"move_iterator" Перемещает содержимое, т.е. удаляет из одного места и создает в другом. На счет цикла - попробуй, должно работать, но решение, конечно, не из лучших) Используй std::transform или std::copy
Лучший урок по итераторам который я находил, большое спасибо ! Лайк, подписка!
11:57 - 140 возвращает из-за того что ты поменял 140 и 0 в предыдущей функции.
Хорошо подметил
он поменял итераторы местами, но не элементы вектора, так что скорее функции begin() и end() имеют баг.
iter_swap меняет элементы, а не итераторы. Так что бага нет.
Спасибо! Хорошо подаешь материал, очень годно.
Почему именно Qt пользуешься?
Возможно из-за функции swap(), begin() и end(), работают не так как ожидалось?
и спасибо, за урок, очень хороший, всё сразу понятно
Если мы использовали make_move_iterator, то не нужно удалить пустой вектор, чтобы освободить память?Можно ли написать:Iterator ib = s.begin();iterator ie = s.end();
for (; ib != ie; ++ib) delete *ib;
?
"move_iterator" Перемещает содержимое, т.е. удаляет из одного места и создает в другом. На счет цикла - попробуй, должно работать, но решение, конечно, не из лучших) Используй std::transform или std::copy
std::begin/end могут возвращать как константные итераторы, так и не константные, то бишь, можно унифицировать определенные моменты.
Когда следующий урок?
Ничего не видно,но материал хороший
Чувак, ну зачем ты вводишь людей в заблуждение? Метод begin()/end() класса vector возвращает random access iterator, а не FORWARD!
std::begin() и std::end() также используются для получения итераторов к обычным массивам
на фоне песня Игра Престолов?))
чувак(автор) ты же поменял последний и первый элемент итератором iter_swap и после выводишь первый и последний
в чём смысл писать слово "чувак"?