I am in a position to choose between function pointers and subclassed objects. To make it clear, say I have to notify some object of some action (a timer for example); refer to the following two choices (a very basic code for demo purposes):
Version 1
typedef void TimerCallback(void *args);
class Timer{
public:
Timer();
[Code] .....
Version 2:
class TimerTask{
public:
TimerTask();
virtual ~TimerTask();
void timedout()=0;
[Code] .....
which one is the standard C++ way and which one is efficient?
I tried to keep the coding style as similar as possible. I tested these with 4 million (4x1024x1024) 64 bit unsigned integers, Visual Studio 2005, 64 bit mode, Win XP X64, Intel 2600K 3.4ghz cpu. The average time for top down = 3.7 seconds, bottom up = 3.5 seconds.
Code: // tsorttd.h - top down merge sort template <class T> T * TopDownMergeSort(T a[], T b[], size_t n) { TopDownMergeSortAtoA(a, b, 0, n);
there is a performance difference (e.g access time, speed, ...) between allocating static memory vs dynamic memory?
For example, if am reading data from a file, and storing them inside a huge buffer, what would be the differences between storing these data inside a static buffer vs a dynamic one?
Using integers faster than using floating points? Or more precise: what do you estimate as the chance that writing a custom floating point class is worth the effort?
I need to examine some C++ code for an ARM7 or ARM9 processor. Instead of using floating points, the coder had chosen to use integers only. To be able to fake floating points, a custom class was written. The coder states that he avoids using floating points as these are much how much slower. "Have you measured this?", I asked. "No, but it is known to be so", he replied.
Google taught me that most people state integers are faster than using doubles, because their operations (addition, multiplication) take less assembler instructions. But if you need those floating points, what do you estimate as the chance that writing a custom floating point class is worth the effort?
A while ago i was asked to write a program for a class that used a "Double ended queue with a current-position marker."
An example of some of the functions that i created are:
boolean atFirst() // Returns true if first element is current. Pre: !isEmpty(). boolean atLast() // Returns true if last element is current. Pre: !isEmpty(). void makeEmpty() // Sets this List to the empty state. Post: isEmpty(). void moveFirst() // Sets current marker to first element. void movePrev() // Moves current marker one step toward first element. void moveNext() // Moves current marker one step toward last element. void insertBeforeFirst(int data) // Inserts new element before first element.
My question is whether a double ended queue with pointer is the same thing as a "doubly linked list" in this case. The terminology is throwing me of a little. If the two concepts are different, how is a doubly linked list different?
I'm having trouble getting the program to calculate the percentage of times it flipped either heads versus tails. I realize what I currently have doesn't work because above I initialized heads and tails by giving them values of 0, but I'm unsure of how to fix it.
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main () { srand(time(0));
i'm trying to determine if a number from a file is a prime number using pointers first I wrote a function that determines if the number is a multiple of 7, 11, or 13. Then i wrote a function to see if the number is odd or even. Are they correct? Later i will print the results on screen but i'm extremely confused with pointers and i'm not sure how to write this prime function...
Code:
void divisible(int *n, int *result) { if (*n % 7 == 0 || n % 13 == 0 || n % 13 == 0) { *result = 1;
I'm wondering about the point of pointers to functions. When is it used?I saw the below example. It doesn't make sense to me. I mean we can easily write code that does the same without having to use pointers.
Code:
#include <stdio.h> int addInt(int a, int b); // Adds 2 integers int add5to4(int (*function_pointer)(int, int)); int main(void) { int sum; int (*function_pointer)(int, int); }
I am trying to use pointers to arrays in my function.
I can get the pointers to work outside of a function but I just can't figure out how to make them work in my function.jwhittle58, on 25 February 2015 - 06:06 PM, said:
I am trying to use pointers to arrays in my function. I can get the pointers to work outside of a function but I just can't figure out how to make them work in my function.
I'm given a mathematical function F(x) = etc..., the user inputs an initial x point and a final x point. The program finds the integration.
Below is a snippet of code.
/*Typedefs as given by prof*/ typedef double (*mainFunction) (double); typedef double (*calcArea) (mainFunction, double, double); int main () { answer = calcIntegral(mainFunction *curve1, calcArea *calcAreaRect, a, B)/>; /*it doesn't like this line*/ printf("The integral from %lf to %lf is: %.4lf", &a,&b,&answer); return 0; }
curve1 is a function that accepts a double and returns a double, calcAreaRect takes mainFunction main(which is F(x) so i stored the fn in curve1), double and double.
I basically have some code that lets users register callbacks into a callback table at a specified index. There is one element in this table for each event that can trigger a callback. I basically do something like this:
How would I pass let say 2 array pointers to a function X , allocate memory for them in X , fill them with values and get them back in my main function without creating a structure.
example:
Code:
void X(int *a, int*b){ a= malloc ... b = malloc ... // fill a and b return them back to the main function } void main(){
The following function uses reference variables as parameters. Rewrite the function so it uses pointers instead of reference variables, and then demonstrate the function in a complete program.
int doSomething(int &x, int &y) { int temp =x; x = y * 10; y = temp * 10; return x + y; }
I understand how to covert the reference variables to pointers, however I am stuck on this error. Either I get the error listed in the title or (with a few changes) the error "invalid conversion from 'int' to 'int*'"
What am I doing incorrectly?
#include <iostream> using namespace std;
int doSomething(int*, int*);
int main(){ int X, Y, result;
[Code] ....
I have multiplied both x and y by 10 and then added them together!
Here is the result " //I really didn't know how else to use the "doSomething" function in a meaningful way. So... I just stated what the function does.
<< result << ". "; system("PAUSE"); return 0; } int doSomthing(int *x, int *y)
two parameters, CImage *pImgSrc and CImage *pImgDst. I think they are class pointers and the function is passed by reference. What should I learn to understand this function and its parameters? How should I use this function? how to use the function with two parameters CImage *pImgSrc and CImage *pImgDst.
I'm having issues with pointers and relationship operators in C.
I need to find a max and min value in a void function using pointers. max and min would work if they had values. mul works, because you can just do math operations with pointers.
There are 0 errors and warnings; but max and min are never going to work as is.
Clearly I'm missing something.
#include <stdio.h> #include <stdlib.h> void max(int *a, int *b, int *c, int *d, int *result); void min(int *a, int *b, int *c, int *d, int *result); void mul(int *a, int *b, int *c, int *d, int *result); int main()
[Code]...
Your job will be to create a program that uses pointers. Your output must be done in the main function and the calculations MUST be done in the three functions. Therefore you MUST use pointers correctly.
You must declare and implement the following 3 functions. Below are the three prototypes that you must use in this program.
void max(int *a, int *b, int *c, int *d, int *result); void min(int *a, int *b, int *c, int *d, int *result); void mul(int *a, int *b, int *c, int *d, int *result);
The functions have the following meaning:
max finds the max value of a,b,c,d and stores the largest value in result. min finds the min value of a,b,c,d and stores the largest value in result. mul multiplies a * b * c and divides by d. Stores that value in result.
Below is an example input/output. This input will be read in via the keyboard (use scanf).
input output (note that user input is shown in bold) 1 2 3 4 Enter the 4 numbers: 1 2 3 4 The max is 4. The min is 1. (a * b * c) / d = 1 100 3 201 103 Enter the 4 numbers: 100 3 201 103 The max is 201. The min is 3. (a * b * c) / d = 585
Your output MUST match exactly the output below for the input from above. Your program must compile, failure to do so will result in 0 points. */
write a program which contains two global variables:
1.Account number (integer) 2.Account Balance (float)
and three functions :
A function called set values which sets initial values for account number and account balance,
A function called set values which prompt user to enter the values of the above variables,
A function called input transaction which reads a character value for transaction type that is D (for deposit) and W (for withdrawal ) and a floating point value for transaction amount which updates the account balance .
Implement a pointer to call each of the functions using C++.