Umístění: ./labs/11-vector/
Čas: 60 minut
Použijte řešení pro gumové pole z minulé hodiny. Implementaci rozšiřte o následující funkcionalitu, není nutné dodržovat pořadí:
Detaily pro vybranou funkcionalitu jsou na dalším slajdu.
Kontejner musí implementovat následující metody.
template<typename T, size_t chunk_size> class ElasticArray {
class iterator;
iterator begin() { ... }
iterator end() { ... }
}
Neb jde o jednoduchý iterátor stačí nám níže uvedené základní metody.
template<typename T, size_t chunk_size> class ElasticArray::iterator {
// constructor
iterator(ElasticArray<T, chunk_size>& container, size_t index) { ... }
// return reference to the current value
T& operator*() { ... }
// compare two iterators
bool operator!=(const iterator& other) const { ... }
// move iterator to next position
iterator& operator++() { ... }
}
// :)
for (auto iter = container.begin(); iter != container.end(); ++iter) { std::cout << *iter << std::endl; }
// :)
for (auto&& item : container) { std::cout << item << std::endl; }
// Not enough :(
std::sort(container.begin(), container.end());
Implementace je hodně daleko od toho, co bychom čekali od kontejneru.