Problem Solving with C++ (9th Edition)
9th Edition
ISBN: 9780133591743
Author: Walter Savitch
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Question
Chapter 17.1, Problem 2STE
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 should use a “type parameter” to denote a “generic” data type instead of using the actual parameter.
- 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.
- The compiler identifies the argument type and generates the code to work with those types.
- The generated code is referred as “template function”.
Example:
For example consider the following function template for finding a cube of value:
template <class T>
T cube(T x)
{
return x * x * x ;
}
- A function template must begin with the keyword “template” and it is followed by a pair of angle brackets, which contains one or more “generic” data types.
- A “generic” type must start with the keyword “class”, followed by an argument name which stands for the data type.
- The statement “T cube(T x)” is referred as function header, where “T” is a “type parameter”, “cube” is the function name and the variable “x” is declared for the type “T”.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Using C++
make a set of function templates that have these features:
This function must return a value.
A function template with 1 template parameter, T. And, any other parameters you want.
A function template with 2 template parameters, T1 and T2. And, any other parameters you want.
Using your own creativity, make a set of class templates that have these features:
For this class template, put everything in one place--do not declare the member functions and have separate definition of the member functions elsewhere. Keep them in one place.
Include a private variable.
Include a constructor that loads the private variable when constructed.
Include a destructor that clears the private variable to zero.
Include set and get functions to set and get the private variable.
For this class template, use declarations for variables and functions, like you do in header file (which you may use if you want).
Then, separately put the full function definitions for each class member function…
Write a function template named maximum. The function takes two values of the same type as its arguments and returns the larger of the two arguments (or either value if they are equal). Give both the function declara-tion and the function definition for the template. You will use the operator< in your definition. Therefore, this function template will apply only to types for which < is defined. Write a comment for the function declaration that explains this restriction.
This is in c++.
Create a class of function objects called
StartsWith
that satisfies the following specification: when initialized with character c, an object of this class behaves as a unary predicate that determines if its string argument starts with c. For example,
StartsWith(’a’)
is a function object that can be used as a unary predicate to determine if a string starts with an a. So,
StartsWith(’a’)("alice")
would return true but
StartsWith(’a’)("bob")
would return false. The function objects should return false when called on an empty string. Test your function objects by using one of them together with the STL algorithm count_if to count the number of strings that start with some letter in some vector of strings.
So basically, I want a class that returns true or false based on if the name that is typed starts with the character that I put down.
Chapter 17 Solutions
Problem Solving with C++ (9th Edition)
Ch. 17.1 - Write a function template named maximum. The...Ch. 17.1 - Prob. 2STECh. 17.1 - Define or characterize the template facility for...Ch. 17.1 - Prob. 4STECh. 17.1 - Display 7.10 shows a function called search, which...Ch. 17.1 - Prob. 6STECh. 17.2 - Give the definition for the member function...Ch. 17.2 - Give the definition for the constructor with zero...Ch. 17.2 - Give the definition of a template class called...Ch. 17.2 - Is the following true or false? Friends are used...
Ch. 17 - Write a function template for a function that has...Ch. 17 - Prob. 2PCh. 17 - Prob. 3PCh. 17 - Redo Programming Project 3 in Chapter 7, but this...Ch. 17 - Display 17.3 gives a template function for sorting...Ch. 17 - (This project requires that you know what a stack...Ch. 17 - Prob. 6PPCh. 17 - Prob. 7PPCh. 17 - This project requires that you complete...
Knowledge Booster
Similar questions
- Write a value-returning function, isVowel, that returns the value true if a given character is a vowel and otherwise returns false. What is the data type of the value-returning function isVowel? What are the formal parameters to the function? What are the data types on the formal parameters? What passing technique is used on those parameters? Write the definition for the isVowel function in the space below.arrow_forwardSuppose that an array is passed as a parameter. How does this differ from the usual use of a value parameter? When an array is passed as a parameter, it is like passed by reference. A new array will be created in the called function and any changes to the new array will pass back to the original array. When an array is passed as a parameter, it is passed by value. So any changes to the parameter do not affect the actual argument. When an array is passed as a parameter, changes to the array affect the actual argument. This is because the parameter is treated as a pointer that points to the first component of the array. This is different from a value parameter (where changes to the parameter do not affect the actual argument). When an array is passed as a value, changes to the array affect the actual argument. This is because the parameter is treated as a pointer that points to the first component of the array. This is different from a parameter (where changes to the parameter do not…arrow_forwardDefine an enumeration type triangleType that has the values scalene, isosceles, equilateral, and noTriangle. Write a function triangleShape that takes as parameters three numbers, each of which represents the length of a side of the triangle. The function should return the shape of the triangle. (Note: In a triangle, the sum of the lengths of any two sides is greater than the length of the third side.) Write a program that prompts the user to input the length of the sides of a triangle and outputs the shape of the trianglearrow_forward
- 4. Which function calls would provide the most helpful test of this function? Remember: With tests, you are attempting to figure out all the possible ways the function could be broken. function findMin(num1, num2){ if(num1 < num2){ return num1; } else { return num2; } } function findMin (num1 num2 if( numl < num2 ) return numl } else ( return num2 O A. findMin(-1, 0) findMin(2,4) findMin(5,10) Ов. findMin(5,3) findMin(7,2) findMin(5,1) O C. findMin(1,1) findMin(-2,2) findMin(0,3) O D. findMin(-1,1) findMin(1,-1) findMin(1,1)arrow_forwardDefine an enumeration type triangleType that has the values scalene, isosceles, equilateral, and noTriangle.b. Write a function triangleShape that takes as parameters three numbers, each of which represents the length of a side of the triangle. The function should return the shape of the triangle. (Note: In a triangle, the sum of the lengths of any two sides is greater than the length of the third side.)c. Write a program that prompts the user to input the length of the sides of a triangle and outputs the shape of the triangle.arrow_forwardusing c++ Develop a class called Point with two data members: x and y. Here you are dealing with a point in planar (2D) Cartesian coordinates with two integer values (x and y). Here are what you need to do: • Define a print function that returns the coordinates of a Point object. • Define a function to find the distance between two points. • Define a function to move a point to the specified location (x’, y’). • Define a function to translate a point by (dx, dy): the new location will be (x+dx, y+dy). • Define functions to tell the user if a point is on the left side, right side, above, or below another point (it can be the combination of some of these or exactly on the same spot). You also need to implement proper constructors (default and parameter constructors), a copy constructor, a destructor, getters, and setters for the data members. Implement the program with separate files: an interface file, an implementation file, and an application file (driver program). Your driver program…arrow_forward
- Using c++ In main.cpp, complete the function RollSpecificNumber() that takes in three parameters: a GVDie object, an integer representing a desired face number of a die, and an integer representing the goal amount of times to roll the desired face number. The function RollSpecificNumber() then rolls the die until the desired face number is rolled the goal amount of times and returns the number of rolls required. Note: For testing purposes, the GVDie objects are created in the main() function using a pseudo-random number generator with a fixed seed value. The program used during development uses a seed value of 15, but when submitted, different seed values will be used for each test case. Refer to the textbook section on random numbers to learn more about pseudo-random numbers. Ex: If the GVDie objects are created with a seed value of 15 and the input of the program is: 3 20 the output is: It took 140 rolls to get a "3" 20 times. #include <iostream>#include "GVDie.h"using…arrow_forwardWrite a function, removeAll, that takes three parameters: an array of integers, the number of elements in the array, and an integer (say, removeItem). The function should find and delete all of the occurrences of removeItem in the array. If the value does not exist or the array is empty, output an appropriate message. (Note that after deleting the element, the number of elements in the array is reduced.) Assume that the array is unsorted.arrow_forwardUsing c++ Rolling for a pair Given two GVDie objects that represent 2 six-sided dice and an integer that represents a desired value as parameters, complete the function RollingForPair() in the main class. The main class rolls the dice until a pair with the desired value is rolled. The function RollingForPair() then returns the number of rolls thrown to achieve the result. Assume the desired value received from input is within the appropriate range, 1-6. Note: For testing purposes, the GVDie objects are created in the main() function using a pseudo-random number generator with a fixed seed value. The program uses a seed value of 15 during development, but when submitted, a different seed value will be used for each test case. Refer to the textbook section on random numbers to learn more about pseudo-random numbers. Ex: If the GVDie objects are created with a seed value of 15 and the input of the program is: 2 the output is: It took 82 rolls to get a pair of 2's. #include…arrow_forward
- For all WWPD questions, type Function if you believe the answer is , Error if it errors, and Nothing if nothing is displayed. As a reminder, the following two lines of code will not display anything in the Python interpreter when executed: >>> x = None >>> X >>> lambda x: x #A lambda expression with one parameter x >>> a = lambda x: x # Assigning the lambda function to the name a >>> a (5) >>> (lambda: 3) () # Using a lambda expression as an operator in a call exp. >>> b = lambda x: lambda: x # Lambdas can return other lambdas! >>> c= b (88) >>> C >>> c() >>> d= Lambda f: f(4) # They can have functions as arguments as well. >>> def square(x): return x * X >>> d (square) >>> Z = 3 >>> e = Lambda x: lambda y: lambda: x >>>e (0) (1) () >>> f = Lambda z: x + Z >>> f (3) >>> higher_order_lambda = Lambda f: Lambda x: f(x) >>> g = Lambda x: x* x >>> higher_order_lambda (2) (g) # Which argument belongs to which function call? >>> higher_order_lambda (g) (2) + Z >>> call_thrice = lambda f:…arrow_forward2. Write the definition of a bool function named BooleanMode () whose header is bool BooleanMode (bool data[), int n) Given that n represents the size of data, the function returns the truth value that appears the most in data. If there is an equal number of both truth values in data, the function returns the truth value that appeared first. For instance, if data = [true, true,false, false,false, true,falsel, then the function will return false. Implarrow_forwardA Fast Food Shop has menu of items being sold on point. Each item has serial number, category, and price. You are supposed to do the following with this same. So 16. Define a appropriate structure to manage this information. SO 17. Define functions to input & output values in one object/variable of this struct type SO 18. Define an array of struct variables and input/output with the help of your won-defined functions in main. SO 19. Define pointer variable of struct type, assign the address of any single element of defined array then print the information of that object with this pointer. 5O 20. Define function out of the struct with following prototype to sum the prices all items enlisted in menu. double sumPrices(/*struct type array with size*/)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 Learning
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning