The components in this module calculate the number of elements in an array that satisfy a certain condition. The difference between the two functions consists in the way the condition is given.
Authors:
Lucian Bentea (September 2005)
Interface
#include <codecogs/stats/countif.h>
using namespace Stats;
template<class T> int
countif (int n, T *data, T cmp, bool (*fctpnt)(const T&, const T&))
Calculates the number of elements in an array that satisfy a certain condition.
Calculates the number of elements in an array of integers that satisfy a certain condition.
Function Documentation
template<class T> intcountif(
int
n
T*
data
T
cmp
bool
(*fctpnt)(const T&, const T&)[function pointer]
)
This function calculates the number of elements in an array that satisfy a certain predicate given as argument. The predicate is a user-defined function that takes as first argument each element of the array and as second argument the value of cmp . Three predicate functions are available with this module to provide basic relational operators, tests to see if two values are equal, or whether one is greater/lesser than the other.
Example:
#include <iostream>#include <codecogs/stats/countif.h>int main(){int x[12] = {3, 5, 1, 2, 6, 8, 10, 2, 2};
std::cout << "The number of elements equal to 2 is: ";
std:: cout << Stats::countif<int>(12, x, 2, Stats::isEqual);
std::cout << std::endl;
std::cout << "The number of elements greater than 3 is: ";
std::cout << Stats::countif<int>(12, x, 3, Stats::isGreater);
std::cout << std::endl;
std::cout << "The number of elements less than 7 is: ";
std::cout << Stats::countif<int>(12, x, 7, Stats::isLess);
std::cout << std::endl;
return0;
}
Output:
The number of elements equal to 2 is: 3
The number of elements greater than 3 is: 4
The number of elements less than 7 is: 10
Parameters:
n
the number of elements in the data array
data
the input array
cmp
the value which is compared to all values in the input array through the predicate function
fctpnt
the predicate function
Returns:
the number of elements in the data array that satisfy the given predicate
This function calculates the number of integers in an array that satisfy a certain predicate given as argument. The predicate is given as a character string, with the following syntax: the first character is one of "=", "!", ">" or "<" to provide the relation that needs to be satisfied, where "!" means inequality. The next characters are used to specify the integer (signed or unsigned) to which the value of each element of the array is to be compared.
Example:
#include <iostream>#include <codecogs/stats/countif.h>int main(){int x[12] = {3, 5, 1, 2, 6, 8, 10, 2, 2};
std::cout << "The number of elements equal to 2 is: ";
std::cout << Stats::countif(12, x, "=2");
std::cout << std::endl;
std::cout << "The number of elements greater than 3 is: ";
std::cout << Stats::countif(12, x, ">3");
std::cout << std::endl;
std::cout << "The number of elements less than 7 is: ";
std::cout << Stats::countif(12, x, "<7");
std::cout << std::endl;
return0;
}
Output:
The number of elements equal to 2 is: 3
The number of elements greater than 3 is: 4
The number of elements less than 7 is: 10
Parameters:
n
the number of elements in the data array
data
the input array of integers
cmp
a string expression giving the condition that an element of the data array should satisfy[const]
Returns:
the number of elements in the data array that satisfy the given condition