cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
91 stars 0 forks source link

Добавить pop_back() параметр - количество удаляемых элементов #596

Open perfectGenius opened 5 months ago

perfectGenius commented 5 months ago

Да, можно сделать вектор.resize(вектор.size() - N);, но ведь тогда можно это делать и для последнего элемента, т.е. pop_back() становится ненужным. Но он есть и сильно упрощает код. И так же было бы проще писать и видеть вектор.pop_back(N); Или тогда название уже не будет соответствовать?

perfectGenius commented 2 months ago

Не ожидал, что это быстро встретится в разработке. Если путь до вектора длинный, то это превращается в абсолютную дичь: массивы.back().элементы.front().заголовок->список_копий.resize(массивы.back().элементы.front().заголовок->список_копий.size() - N); У меня тут вместо N ещё один длинный путь, но пусть будет число, чтобы не выглядело совсем ужасно. Пришлось пилить на две строки:

auto temp = &массивы.back().элементы.front().заголовок->список_копий;
temp->resize(temp->size() - N);

А с параметром могло быть просто: массивы.back().элементы.front().заголовок->список_копий.pop_back(N);