LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Хорошо, поставим вопрос по другому. Вот выучили мы некое подмножество С++ без адресной арифметики - а зачем?

Затем, что можно использовать кучу обобщенных алгоритмов на итераторах.

Какую задачу мы будем на нём решать, которая не решается на любом более другом языке без адресной арифметики?

Я не понимаю этот вопрос в том смысле, что адресная арифметика – это часть C++. Изучать ее можно прямо в C++, для этого не нужно предварительно знакомиться с Си.

Тут скорее нужно вести разговор о том, что ваш пример с вектором – он не про указатели, он более общий. Думаю, что можно было постараться и придумать что-то именно про указатели.

Например, собственный аллокатор на базе арены.

Да, для новичка в C++ – это оверкил, но для новичка и просто арифметика указателей – не меньший оверкил.

А вот вы можете привести примеры из практики, где в современном С++ нужна адресная арифметика? Может быть где-то в мире embedded? Потому что в более-менее прикладном C++ мне эта самая арифметика и не нужна особо, а там где есть что-то типа p++ или p-- (где p – это указатель), указатели оказываются частным случаем итераторов.

Исходная версия eao197, :

Хорошо, поставим вопрос по другому. Вот выучили мы некое подмножество С++ без адресной арифметики - а зачем?

Затем, что можно использовать кучу обобщенных алгоритмов на итераторах.

Какую задачу мы будем на нём решать, которая не решается на любом более другом языке без адресной арифметики?

Я не понимаю этот вопрос в том смысле, что адресная арифметика – это часть C++. Изучать ее можно прямо в C++, для этого не нужно предварительно знакомиться с Си.

Тут скорее нужно вести разговор о том, что ваш пример с вектором – он не про указатели, он более общий. Думаю, что можно было постараться и придумать что-то именно про указатели.

Например, собственный аллокатор на базе арены.

Да, для новичка в C++ – это оверкил, но для новичка и просто арифметика указателей – не меньший оверкил.

А вот вы можете привести примеры из практики, где в современном С++ нужна адресная арифметика? Может быть где-то в мире embedded? Потому что в более-менее прикладном C++ мне эта самая арифметика и не нужна особо, а там где есть что-то типа p++ или p– (где p – это указатель), указатели оказываются частным случаем итераторов.