mirror of
https://github.com/Nekrolm/ubbook.git
synced 2026-06-09 13:14:18 +03:00
Update proxy_objects.md
This commit is contained in:
@@ -14,9 +14,9 @@ auto pop_last(std::vector<T>& v) {
|
||||
}
|
||||
```
|
||||
|
||||
Вполне разумно завести себе подобную функцию, ведь имеющиеся `pop_back` у многих контейнеров и адаптеров (`stack`, `queue`) до C++20 возвращают `void`. Что очень неудобно — чаще всего мы хотим изъять последний элемент контейнера и что-то с ним сделать, а не просто выкинуть.
|
||||
Вполне разумно завести себе подобную функцию, ведь имеющиеся `pop_back` у стандартных контейнеров возвращают `void`. Это очень неудобно на практике — чаще всего мы хотим изъять последний элемент контейнера и что-то с ним сделать, а не просто выкинуть.
|
||||
|
||||
Все ли хорошо с этой функцией? Конечно, на пустом векторе будет неопределенное поведение, но мы же написали `assert`, так что дальше все на откуп пользователю. Пусть просто пишет корректный код, а некорректный не пишет... А в остальном вроде все в порядке, да?
|
||||
Все ли хорошо с этой функцией? Конечно, на пустом векторе будет неопределенное поведение, но мы же написали assert, так что дальше все на откуп пользователю. Пусть просто пишет корректный код, а некорректный не пишет… Еще есть вопросы к гарантиям исключений — ведь из-за них стандартный `pop_back()` ничего не возвращает. Но это тема другой главы. А в остальном вроде все в порядке, да?
|
||||
|
||||
Что ж, давайте ею пользоваться!
|
||||
|
||||
@@ -201,4 +201,4 @@ T sum(T a, T b)
|
||||
1. https://stackoverflow.com/questions/17794569/why-isnt-vectorbool-a-stl-container
|
||||
2. https://www.researchgate.net/publication/220803585_Performance_of_C_bit-vector_implementations
|
||||
3. https://eigen.tuxfamily.org/dox/TopicWritingEfficientProductExpression.html
|
||||
4. https://eigen.tuxfamily.org/dox/TopicLazyEvaluation.html
|
||||
4. https://eigen.tuxfamily.org/dox/TopicLazyEvaluation.html
|
||||
|
||||
Reference in New Issue
Block a user