Concept explainers
A vector is a container which performs like an extensible array.
- The size of the vector is dynamic.
- The series of elements are stored using the same variable name.
- It uses random-access iterator.
- If an element is added or removed, it adjusts its size automatically, which accommodates the number of elements contained in the vector.
Explanation of Solution
Emplacement:
The technique used by member function to insert new elements in a container is emplacement. When new object is inserted into a container it avoids creation of temporary objects in memory.
emplace() and emplace_back() emplacement member functions:
Two member function in a vector class uses emplacement technique namely: “emplace()” and “emaplace_back()”.
- These two member functions avoid the creation of memory when new object is inserted into a container.
- There is no need to instantiate the objects which are going to be inserted.
- The objects are just passed as an argument into the emplacement function.
- The emplacement function handles the creation of object and then forwards to the argument to its constructor.
Comparing “emplace()” and “emplace_back()” member function with “insert()” and “push_back()” :
The “insert()” and “push_back()” member functions creates a temporary memory when new objects are inserted into a container.
Whereas, the “empalce” and “emplace_back()” member function avoids the creation of memory when new objects are inserted into a container.
Want to see more full solutions like this?
Chapter 17 Solutions
Starting Out with C++ from Control Structures to Objects (9th Edition)
- What are the two parameters required for the read member function?arrow_forwardIn this programming assignment, you will create a generic Vector class without using the utilities of the standard vector class and the template feature of C++. The design should allow its users to use an integer or character vector. You should review the standard vector class to learn what to include as data members and member functions.arrow_forwardis a unique pointer that is built into the nonstatic member functions and is automatically sent along to those functions in the form of a hidden parameter.arrow_forward
- Operator______________ can be used to downcast base-class pointers safely.arrow_forwardCreate an expansion of the structure. MyVector is a new vector that has the sort technique. The following actions can be taken to implement this new class: 1. Define a new class called MyVector as an extension of the structure. vector type. With this class, you ought to provide a default function Object() { [native code] } that only calls super();. The structure will be forced by this. To be called is the vector function Object() { [native code] }. This will then initialise the Vector class's protected fields. 2. Create the sort method as a new Vector method. The declaration that follows should be included: Public void sort(Comparator c) / pre: c is an acceptable comparator / post: sorts this vector according to c's order This function actually sorts the data in MyVector using an object of the Comparator type. You are free to utilise any kind. 3. Create a programme that reads a data file containing many fields and, dependingarrow_forwardC++ Program You may use the vector and iostream libraries. You are allowed to use three built-in vector member functions (and no others) but you may not have to use them all. The member functions you are allowed to use are size(), at(), and push_back() Write a function that outputs a vector of doubles with each number in the vector separated by a space then a newline after the entire vector is output. The whole vector output should be preceded by a single line saying "Current Vector Contents:". Write a function that takes a vector a doubles and reverses the order of all the elements of the vector. Write a function that fills a vector of doubles with positive numbers using the standard input stream cin, terminate the input when the user enters any negative number. A single output prompt should precede the initial input stating directions for user. Write a main function that creates an empty vector, calls functions from 2 & 3 and calls your output function before and after each…arrow_forward
- C++ Code 9.16 Lab 06: Dynamic Arrays (Part 2) Step 1a: Preparation The suite of Part 1 tests has been moved to its own function. The code in main() is focused on testing the new operators you'll write in this part. main() relies on a change you're going to make to the DynamicArray::print() member function (coming up in Step 1b). Instead of directly using cout, this member function is now going to print to a stringstream. This allows my test code to examine the output and check it automatically. How 3 representative lines of the new main program work: // Use stringstream to capture your print function's output.stringstream testoutput;// Use the same testoutput variable over and over, so we reset it to the empty string between tests using its str() member function.testoutput.str(""); // Reset test output string// Call the print function on your array, and it prints to testoutput instead of cout.a.print(testoutput);// Use the RunIndividualTest function also included in main.cpp to…arrow_forward4. Write a function named “removeNegativePrice” that accepts the vector of pointers to PurchaseOrder objects. It will go through that list and remove all PurchaseOrder objects with the negative cost per item. It will also return how many PurchaseOrderobjects that it has removed from the list. Please show how this function is being called and can delete PurchaseOrder objects with negative cost from the list. C++arrow_forwardPlease write C++ functions, class and methods to answer the following question. Write a function named “removeThisWord” that accepts the vector of pointers toWord objects and a search word. It will go through that list and remove all Wordobjects with the same search word from the vector object. It will return how manyWord objects have been removed. I need the carrect answer as soon as possible pleasearrow_forward
- Procedure: Develop an extension of structure.Vector, called MyVector, that includes a new method, sort. Here are some steps toward implementing this new class: 1. Create a new class, MyVector, which is declared to be an extension of the structure.Vector class. You should write a default constructor for this class that simply calls super();. This will force the structure.Vector constructor to be called. This, in turn, will initialize the protected fields of the Vector class. 2. Construct a new Vector method called sort. It should have the following declaration: public void sort(Comparator c) // pre: c is a valid comparator // post: sorts this vector in order determined by c This method uses a Comparator type object to actually perform a sort of the values in MyVector. You may use any sort that you like. 3. Write an application that reads in a data file with several fields, and, dependingarrow_forwardIn C++, Define struct StudentInfo; maintain records in a vector<StudentInfo>. Program prompts for and fetches data, builds vector of student records, sorts by name, calculates max and min grades (no names, just max and min numbers), class average, prints summarizing data along with class roll and grades. Test program. Note: add constructors (default/parameterized wherever applicable)arrow_forwardWhat benefits do enumeration types provide over a collection of named constants? What benefits does a subrange type have over its base type? When might a string be preferable over a character array?arrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning