Containers are used to store objects of the same type and provide operations with which these objects can be managed.
Posted: Fri Jun 10, 2022 11:58 am
Containers are used to store objects of the same type and provide operations with which these objects can be managed.
These operations include object insertion, deletion and retrieval. Memory is allocated for containers dynamically at runtime.
Containers thus provide a safe and easy way to manage collections of objects. The C++ standard library provides various
class templates for container management in the Containers Library. These classes can be categorized as follows:
Sequential containers, where the objects are arranged sequentially and access to an object can either be direct or
sequential.
Associative containers, where the objects are generally organized and managed in a tree structure and can be referenced
using keys.
Sequential Containers
Sequential containers are distinguished by the operations defined for them, which are either generic or restricted. Restricted
operations, such as appending at the end of a container, have constant runtimes. That is, the runtime is proportional to a
fixed time and does not depend on the number of objects in the container.
The following are examples of sequential containers:
array implements a compile-time non-resizable array
vector implements an array with fast random access and an ability to automatically resize when appending elements
deque implements a double-ended queue with comparatively fast random access
list implements a doubly linked list
forward_list implements a singly linked list
Thus, in this programming assignment, you are going to create a general deque class without using the utilities of the
standard library version. The design should let its users instantiate a deque of integers or characters. You should review
the standard deque class for learning what to include as data members and member functions.
OOP principles such as encapsulation, inheritance and polymorphism should be taken into account in the class design.
Partial grading will be in use in case there is no full implementation.(with detailed explanation of the programming assignment and how it works)
These operations include object insertion, deletion and retrieval. Memory is allocated for containers dynamically at runtime.
Containers thus provide a safe and easy way to manage collections of objects. The C++ standard library provides various
class templates for container management in the Containers Library. These classes can be categorized as follows:
Sequential containers, where the objects are arranged sequentially and access to an object can either be direct or
sequential.
Associative containers, where the objects are generally organized and managed in a tree structure and can be referenced
using keys.
Sequential Containers
Sequential containers are distinguished by the operations defined for them, which are either generic or restricted. Restricted
operations, such as appending at the end of a container, have constant runtimes. That is, the runtime is proportional to a
fixed time and does not depend on the number of objects in the container.
The following are examples of sequential containers:
array implements a compile-time non-resizable array
vector implements an array with fast random access and an ability to automatically resize when appending elements
deque implements a double-ended queue with comparatively fast random access
list implements a doubly linked list
forward_list implements a singly linked list
Thus, in this programming assignment, you are going to create a general deque class without using the utilities of the
standard library version. The design should let its users instantiate a deque of integers or characters. You should review
the standard deque class for learning what to include as data members and member functions.
OOP principles such as encapsulation, inheritance and polymorphism should be taken into account in the class design.
Partial grading will be in use in case there is no full implementation.(with detailed explanation of the programming assignment and how it works)