Give complete C++ code for a new class, ShrinkingVector, that extends the ArrayVector class shown in Code Fragment 6.2 and adds a function, shrinkToFit, which replaces the underlying array with an array whose capacity is exactly equal to the number of elements currently in the vector. typedef int Elem; class ArrayVector { public: ArrayVector(); int size() const; bool empty() const; Elem& operator[](int i); Elem& at(int i) throw(IndexOutOfBounds); // element at index void erase(int i); void insert(int i, const Elem& e); void reserve(int N); // ... (housekeeping functions omitted) private: int capacity; int n; Elem* A; }; // base element type // constructor // number of elements // is vector empty? // element at index // remove element at index // insert element at index // reserve at least N spots // current array size // number of elements in vector // array storing the elements Code Fragment 6.2: A vector implementation using an extendable array.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Give complete C++ code for a new class, ShrinkingVector, that extends the ArrayVector class shown in Code
Fragment 6.2 and adds a function, shrinkToFit, which replaces the underlying array with an array whose
capacity is exactly equal to the number of elements currently in the vector.
// base element type
typedef int Elem;
class ArrayVector {
public:
Array Vector();
int size() const;
bool empty() const;
Elem& operator[](int i);
Elem& at(int i) throw(IndexOutOfBounds); // element at index
void erase(int i);
void insert(int i, const Elem& e);
void reserve(int N);
// ... (housekeeping functions omitted)
private:
int capacity;
// constructor
// number of elements
// is vector empty?
// element at index
// remove element at index
// insert element at index
// reserve at least N spots
// current array size
// number of elements in vector
// array storing the elements
int n;
Elem* A;
};
Code Fragment 6.2: A vector implementation using an extendable array.
Transcribed Image Text:Give complete C++ code for a new class, ShrinkingVector, that extends the ArrayVector class shown in Code Fragment 6.2 and adds a function, shrinkToFit, which replaces the underlying array with an array whose capacity is exactly equal to the number of elements currently in the vector. // base element type typedef int Elem; class ArrayVector { public: Array Vector(); int size() const; bool empty() const; Elem& operator[](int i); Elem& at(int i) throw(IndexOutOfBounds); // element at index void erase(int i); void insert(int i, const Elem& e); void reserve(int N); // ... (housekeeping functions omitted) private: int capacity; // constructor // number of elements // is vector empty? // element at index // remove element at index // insert element at index // reserve at least N spots // current array size // number of elements in vector // array storing the elements int n; Elem* A; }; Code Fragment 6.2: A vector implementation using an extendable array.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY