C++ Группа 1 — различия между версиями
(→#4 Deque) |
|||
Строка 35: | Строка 35: | ||
''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family). | ''Hint'': see [http://en.cppreference.com/w/cpp/header/memory memory] header closely (`uninitialized_*` family). | ||
− | == | + | == Deque == |
Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements. | Implement double-ended queue matching interface of thereof inside STL ([http://en.cppreference.com/w/cpp/container/deque std::deque]) and ''matching'' its performance requirements. |
Версия 10:46, 11 марта 2016
Кудинкин Алексей
+7-911-748-38-35
Содержание
vector<T>/vector<bool>
Реализовать шаблонную версию ранее реализованного контейнера vector. Также реализовать специализацию получившегося шаблона оптимизированную для хранения бит: vector<bool>.
Intro to exceptions
https://www.dropbox.com/s/opxblrdj74gieeg/assignment.cc?dl=0
https://www.dropbox.com/s/8xivap6w7n97qix/new_assignment.cc?dl=0
Exceptions Safety
Main
Reconsider your own `vector` implementation towards making it exception-safe.
Following members of your `vector` implementation should be reconsidered to match corresponding exception-safety guarantees:
- operator= (strong)
- push_back (strong)
Extra
Try match your implementation on the functions predefined inside STL.
Try to reduce boilerplate inside your implementation relying on the standard-library defined utilities.
Hint: see memory header closely (`uninitialized_*` family).
Deque
Implement double-ended queue matching interface of thereof inside STL (std::deque) and matching its performance requirements.
At the very least, it should contain following members:
- push_back
- pop_back
- push_front
- pop_front
- insert
- clear
- resize
- back
- front
- size
- begin/rbegin
- end/rend
NB: Implementing deque matching performance requirements of the STL one, try to minimize unused memory 'committed' by your implementation.
If you consider that it's impossible, be ready to assure your point.