Показать сообщение отдельно
Старый 14.01.2018, 19:53   #4 (permalink)
Olej
Member
 
Аватар для Olej
 
Регистрация: 10.01.2018
Сообщений: 36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А выделение мин./макс. элементов массива цветом будет выглядеть так (как вариант):
Код:
#include <iostream>
#include <algorithm>
using namespace std;
#include "rang.hpp"

int main( int argc, char** argv ) {
   int array[] = { 10, 9, 11, 8, 13, 6, 14, 4, 12, 2, 8 },
       size = sizeof( array ) / sizeof( array[ 0 ] );
   auto mm = minmax_element( array, array + size );
   cout << "диапазон: '" << *mm.first << "' ... '" << *mm.second << "'" << endl;
   for( auto ia = array; ia < array + size; ia++ )
      if( ia == mm.first )
         cout << rang::fg::red << *ia << rang::style::reset << ' ';
      else if ( ia == mm.second )
         cout << rang::fg::green << *ia << rang::style::reset << ' ';
      else
         cout << *ia << ' ';
   cout << endl;
}
1. Это будет работать почти в любой операционной системе: Windows, Linux, MacOS.
2. Это нужно компилировать с опцией совместимости со стандартом C++11, так для упрощения записан код. Но это легко переписать (вместо auto записать реальный тип итераторов) так, чтобы всё было корректно и в более ранних стандартах C++.
Olej вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070