Starting Out with C++ from Control Structures to Objects (8th Edition)
8th Edition
ISBN: 9780133769395
Author: Tony Gaddis
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Chapter 16, Problem 44RQE
Program Plan Intro
Function template:
In C++, a function template is referred as a “generic” function, which can work with different data types.
- While writing a function template, a programmer can specify the “type parameter” instead of using the actual data type.
- The compiler generates the code, when it encounters a function call to a function template. This code will handle the particular data type which is used in the function call.
Example:
For example consider the below function template used to find the cube of given value for any types:
//template function
template <class T>
//function definition of "cube"
T cube(T x)
{
//return the cube of the value
return x*x*x ;
}
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
C++ Programming
Redesign your class myArray using class templates so that the class can be used in any application that requires arrays to process data.
#include <iostream>#include "myArray.h"
using namespace std;
int main(){myArray list1(5);myArray list2(5);
int i;
cout << "list1 : ";for (i = 0; i < 5; i++)cout << list1[i] << " ";cout << endl;
cout << "Enter 5 integers: ";for (i = 0; i < 5; i++)cin >> list1[i];cout << endl;
cout << "After filling list1: ";
for (i = 0; i < 5; i++)cout << list1[i] << " ";cout << endl;
list2 = list1;cout << "list2 : ";for (i = 0; i < 5; i++)cout << list2[i] << " ";cout << endl;
cout << "Enter 3 elements: ";
for (i = 0; i < 3; i++)cin >> list1[i];cout << endl;
cout << "First three elements of list1: ";for (i = 0; i < 3; i++)cout << list1[i] << " ";cout << endl;
myArray list3(-2, 6);
cout <<…
Use C++
Convert your Set class in Lab #23 to the template-based class. That is, the template-based set must be able to store data of any data type, not just integers. Write the main function to test your class by creating different sets of different data types.
main.cpp:
#include <iostream>#include "Set.h"using namespace std;int main() {Set s1;Set s2;s1.insert(1);s1.insert(2);s2.insert(2);s2.insert(3);s2.insert(4);Set result = s1 + s2;result.show();s1 += s2;s1.show();s1 = s1;s1.show();cout << s1.getSize() << endl;cout << s1.getCapacity() << endl;s1.remove(2);s1.show();s1.remove(5);s1.show();return 0;}
Set.h:
#ifndef SET_H#define SET_H#include "Set.h"Set::Set() {size = 0;capacity = 10;items = new int[capacity];}Set::Set(int cap){size = 0;capacity = cap;items = new int[capacity];}Set::Set(const Set &source){size = source.size;capacity = source.capacity;items = new int[capacity];for (int i = 0; i < size; i++){items[i] =…
In c++
1) if you are going to make a lot of searches on large number of elements, you should use:
a)map
b)unordered map
c)multi map
d)none of the above
2)The [] operator in array template class perform bounds checking
-true
-false
3)function template allow you to write a single function definition that works with many data types
-true
-false
4)STL have ........ categories of templates
-2
-5
-3
-4
Chapter 16 Solutions
Starting Out with C++ from Control Structures to Objects (8th Edition)
Ch. 16.1 - Prob. 16.1CPCh. 16.1 - Prob. 16.2CPCh. 16.1 - Prob. 16.3CPCh. 16.1 - Prob. 16.4CPCh. 16.1 - Prob. 16.5CPCh. 16.3 - Prob. 16.6CPCh. 16.3 - The following function accepts an i nt argument...Ch. 16.3 - Prob. 16.8CPCh. 16.3 - Prob. 16.9CPCh. 16.4 - Prob. 16.10CP
Ch. 16.4 - Prob. 16.11CPCh. 16 - Prob. 1RQECh. 16 - Prob. 2RQECh. 16 - Prob. 3RQECh. 16 - Prob. 4RQECh. 16 - What is unwinding the stack?Ch. 16 - What happens if an exception is thrown by a classs...Ch. 16 - How do you prevent a program from halting when the...Ch. 16 - Why is it more convenient to write a function...Ch. 16 - Why must you be careful when writing a function...Ch. 16 - Prob. 10RQECh. 16 - Prob. 11RQECh. 16 - Prob. 12RQECh. 16 - The line containing a throw statement is known as...Ch. 16 - Prob. 14RQECh. 16 - Prob. 15RQECh. 16 - Prob. 16RQECh. 16 - The beginning of a template is marked by a(n)...Ch. 16 - Prob. 18RQECh. 16 - Prob. 19RQECh. 16 - Prob. 20RQECh. 16 - Prob. 21RQECh. 16 - _____________ are pointer-like objects used to...Ch. 16 - Prob. 23RQECh. 16 - Write a function that searches a numeric array for...Ch. 16 - Write a function that dynamically allocates a...Ch. 16 - Make the function you wrote in Question 17 a...Ch. 16 - Write a template for a function that displays the...Ch. 16 - Prob. 28RQECh. 16 - Prob. 29RQECh. 16 - Prob. 30RQECh. 16 - Prob. 31RQECh. 16 - Prob. 32RQECh. 16 - Prob. 33RQECh. 16 - Prob. 34RQECh. 16 - T F All type parameters defined in a function...Ch. 16 - Prob. 36RQECh. 16 - T F A class object passed to a function template...Ch. 16 - Prob. 38RQECh. 16 - Prob. 39RQECh. 16 - Prob. 40RQECh. 16 - Prob. 41RQECh. 16 - T F A class template may not be derived from...Ch. 16 - T F A class template may not be used as a base...Ch. 16 - Prob. 44RQECh. 16 - Prob. 45RQECh. 16 - Prob. 46RQECh. 16 - Prob. 47RQECh. 16 - try { quotient = divide(num1, num2); } cout The...Ch. 16 - template class T T square(T number) { return T T;...Ch. 16 - template class T int square(int number) { return...Ch. 16 - Prob. 51RQECh. 16 - Assume the following definition appears in a...Ch. 16 - Assume the following statement appears in a...Ch. 16 - Prob. 1PCCh. 16 - Prob. 2PCCh. 16 - Prob. 3PCCh. 16 - Prob. 4PCCh. 16 - Prob. 5PCCh. 16 - IntArray Class Exception Chapter 14 presented an...Ch. 16 - TestScores Class Write a class named TestScores....Ch. 16 - Prob. 9PCCh. 16 - SortableVector Class Template Write a class...Ch. 16 - Inheritance Modification Assuming you have...Ch. 16 - Prob. 12PCCh. 16 - Prob. 13PCCh. 16 - 14. Test Scores vector
Modify Programming...Ch. 16 - Prob. 15PCCh. 16 - Prob. 16PCCh. 16 - Prob. 17PC
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Similar questions
- Write a template for a function that displays the contents of an array of any data type.arrow_forwardC++ 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_forwardTopical Information Use C++. The purpose of this project is to test your ability to use templates, dynamic memory (mixed with classes), operator overloading, and libraries effectively in program design. Program Information Create a template class for a dynamic 1D array. You can model your class off of our String class or the dynamic list class. Changes from String class: You won't need an end-of-string element in the array. The element type is now templated. Translation will no longer be necessary. operators - and -= 'might' now make sense (erase element(s)?). ... Show how useful your template array class is by creating arrays of short integers doubles String class objects (static) Point class objects pointers to Point class objects (each allocated on the heap) — all in one test application. Make sure your test application is a good/thorough test of your class. (Your test application might utilize the applyand accumulatefunctions from lecture to facilitate testing. Also note how a…arrow_forward
- Plz do not do this program with vector,pointer and multiple files do as simple as you can Write a template-based class that implements a set of items. The class should allow the user to: Add a new item to the set Get the number of items in the set Test your class by creating sets of different data types (e.g. integers, strings, etc.) Please use the following class template to finish the program. template<class T> class Set { public: Set(); void add(T newItem);// Add new item to the set (definition should be outside of the class) int getSize();// Return size of set (definition should be outside of the class) private: T data[MAX]; };arrow_forwardHello C++ question thank you 1) Develop a function that properly prints out each element of a vector of strings Print an endline character when done to make sure the next print starts on a new line make this function templated to the vector type passed in(Comment this) 2) Implement the following functionality using std::vector and std::string data types: a vector that contains the following strings as elements { olleh ereht skool ekil uoy desrever gnihtyreve gnidrocca ot nalp doog boj } Print the vector using your function Reverse all the letters in each string, so that each string is now a proper word Print the vector using your function a second "new" vector, copying the first vector's elements using iterators Do not copy the first two elements and the last two elements into the new vector Print the "new" vector using your function Sort the "new" vector alphabetically Print the "new" vector using your function Change every 'o' character in the "original" vector into a '@'…arrow_forwardAssignment 6 - More on ListsWrite pseudo-code not Python for problems requiring code. You are responsible for the appropriate level of detail.The questions in this assignment give you the opportunity to explore a new data structure and to experiment with the hybrid implementation in Q3. 1. A deque (pronounced deck) is an ordered set of items from which items may be deleted at either end and into which items may be inserted at either end. Call the two ends left and right. This is an access-restricted structure since no insertions or deletions can happen other than at the ends. Implement the deque as a doubly-linked list (not circular, no header). Write InsertLeft and DeleteRight.2. Implement a deque from problem 1 as a doubly-linked circular list with a header. Write InsertRight and DeleteLeft.3. Write a set of routines for implementing several stacks and queues within a single array. Hint: Look at the lecture material on the hybrid implementation.arrow_forward
- in c++ A frequency table lists words and the number of times each word appears in a text file.Write a program that creates a frequency table for a file whose name is entered by theuser. You can use a map of string-int pairs. You may want to use the C library functionispunct() (in header file CTYPE.H) to check for punctuation so you can strip it off theend of a word, using the string member function substr(). Also, the tolower() functionmay prove handy for uncapitalizing words.arrow_forwardC++ ************Comment code please************ Into two files, p1.h and p1.cpp, create a class called intList with the following members Private members: int *a // A pointer to the array into which the list values will be stored. int capacity; // memorialize the capacity of the list int size; An integer “pop” to record the number of entries in the list Public members: constructor intList(int size) that causes the array to be sized at “size” entries, with a default size of 100 destructor ~intList() that deletes the dynamically allocated array “a” bool insert(int v) – inserts the value v at the beginning of the list; all other entries shift right. Returns true if v was inserted; otherwise, it returns false. bool add(int v) – inserts the value v at the end of the list. Returns true if the value was inserted; otherwise, it returns false. bool insertAt(int v, int index) – inserts the value v at the index “index”; values at that position need to shift right. Returns true if the…arrow_forwardIn C++Using the code provided belowDo the Following: Modify the Insert Tool Function to ask the user if they want to expand the tool holder to accommodate additional tools Add the code to the insert tool function to increase the capacity of the toolbox (Dynamic Array) USE THE FOLLOWING CODE and MODIFY IT: #define _SECURE_SCL_DEPRECATE 0 #include <iostream> #include <string> #include <cstdlib> using namespace std; class GChar { public: static const int DEFAULT_CAPACITY = 5; //constructor GChar(string name = "john", int capacity = DEFAULT_CAPACITY); //copy constructor GChar(const GChar& source); //Overload Assignment GChar& operator=(const GChar& source); //Destructor ~GChar(); //Insert a New Tool void insert(const std::string& toolName); private: //data members string name; int capacity; int used; string* toolHolder; }; //constructor GChar::GChar(string n, int cap) { name = n; capacity = cap; used = 0; toolHolder = new…arrow_forward
- In C Programming: You will need all the functions from the previous assignment, as well as the structure course:• Department (string, 15 characters)• Course number (integer, 4 digits, leading 0 if necessary)• Course title (string, 30 characters)• Credits (short, 1 digit) Write a function saveAllCoursesText() which receives an array of course pointers and the array’s size, then outputs the content of the array in text format to a file named “courses.txt”.• Save the entire structure on 1 line (all the members of the structure should be saved in 1 fprintf() command)arrow_forwardSmart Pointer: Write a smart pointer class. A smart pointer is a data type, usually implemented with templates, that simulates a pointer while also providing automatic garbage collection. It automatically counts the number of references to a SmartPointer<?> object and frees the object of type T when the reference count hits zero.arrow_forwardIn C#: Run the following console application. This program should produce the union of two sets, but has several errors. Use a variety of debugging techniques to locate and correct the errors. NOTE: A set is a collection of like elements that does not contain any duplicates. The union of two sets is the set that contains all the elements in both sets. Formally: A union B = {x : x Î A or x Î B}read: A union B is the set of all x such that x is in A or x is in B Example: A = {1,2,3,4,5} and B = {2,4,6,8}, then A union B = {1,2,3,4,5,6,8} (notice, no duplicates!) Debug the program. When you find an error, comment out the offending line, give an explanation of the error, write a corrected line, and include a screenshot of your program running with successful output. Submit the modified files and screenshots of any breakpoints you use. Program using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace…arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningC++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology Ptr
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr