fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. std::string desc( unsigned int sum, unsigned int size ) {
  6. if ( sum == size ) {
  7. return "all 1";
  8. }
  9. if ( sum == 0 ) {
  10. return "all 0";
  11. }
  12. return "mixed";
  13. }
  14.  
  15. int main() {
  16. unsigned char data_1[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
  17. unsigned char data_0[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  18. unsigned char data_01[] = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1 };
  19. unsigned int data_1_size = sizeof( data_1 ) / sizeof( data_1[ 0 ] );
  20. unsigned int data_0_size = sizeof( data_0 ) / sizeof( data_0[ 0 ] );
  21. unsigned int data_01_size = sizeof( data_01 ) / sizeof( data_01[ 0 ] );
  22. unsigned int sum_1 = std::accumulate( data_1, data_1 + data_1_size, 0 );
  23. unsigned int sum_0 = std::accumulate( data_0, data_0 + data_0_size, 0 );
  24. unsigned int sum_01 = std::accumulate( data_01, data_01 + data_01_size, 0 );
  25. cout << "data_1 is " << desc( sum_1, data_1_size ) << endl;
  26. cout << "data_0 is " << desc( sum_0, data_0_size ) << endl;
  27. cout << "data_01 is " << desc( sum_01, data_01_size ) << endl;
  28. return 0;
  29. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
data_1 is all 1
data_0 is all 0
data_01 is mixed