Write the following function prints an array.
void print( int array[], std::size_t capacity, std::size_t max_leading = 0, std::size_t max_trailing = 0, char *opening_delimiter = "{", char *closing_delimiter = "}", char *separator = "," ); void print( int array[], std::size_t capacity, std::size_t max_leading = 0, std::size_t max_trailing = 0, std::string opening_delimiter = "{", std::string closing_delimiter = "}", std::string separator = "," );
where an array is printed as follows:
For templated implementations, you could compare to 0, but it is better to compare to the default value of the templated type: T{}.
template <typename T> void print( T array[], std::size_t capacity, std::size_t max_leading = 0, std::size_t max_trailing = 0, char *opening_delimiter = "{", char *closing_delimiter = "}", char *separator = "," ); template <typename T> void print( T array[], std::size_t capacity, std::size_t max_leading = 0, std::size_t max_trailing = 0, std::string opening_delimiter = "{", std::string closing_delimiter = "}", std::string separator = "," );
int array[10]{11, 12, 13, 14, 15, 16, 17, 18, 19, 20}; print_array( array, 10 ); std::cout << std::endl; print_array( array, 10, 5 ); std::cout << std::endl; print_array( array, 10, 4, 2 ); std::cout << std::endl; print_array( array, 10, 0, 0, "[", "];", ", " ); std::cout << std::endl; print_array( array, 10, 7, 1, "[", "];", ", " ); std::cout << std::endl; print_array( array, 10, 0, 4, "[", "];", ", " ); std::cout << std::endl;
The output would be
{11,12,13,14,15,16,17,18,19,20} {11,12,13,14,15,...} {11,12,13,14,...,19,20} [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; [11, 12, 13, 14, 15, 16, 17, ..., 20]; [..., 17, 18, 19, 20];