Шаг 76.
Библиотека STL.
Вспомогательные средства. Пример использования класса numeric_limits

    На этом шаге мы рассмотрим пример использования класса numeric_limits.

    Следующий пример демонстрирует использование числовых пределов. Он выводит максимальные возможные значения некоторых типов, а также проверяет, является ли тип char знаковым.

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream>
#include <limits> 
#include <string> 
#include <conio.h> //необходимо для getch()
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
using namespace std;


int main(int argc, char* argv[])
{
  // Использование текстового представления для bool
  cout << boolalpha;

  // Вывод максимальных значений для целочисленных типов
  cout << "max(short): " << numeric_limits<short>::max() << endl;
  cout << "  max(int): " << numeric_limits<int>::max() << endl;
  cout << " max(long): " << numeric_limits<long>::max() << endl;
  cout << endl;

  // Вывод максимальных значений для вещественных типов
  cout << "      max(float):  "
    << numeric_limits<float>::max() << endl;
  cout << "     max(double):  "
    << numeric_limits<double>::max() << endl;
  cout << endl;

  // Проверяем, является ли тип char знаковым.
  cout << "is_signed(char):  "
    << numeric_limits<char>::is_signed << endl;
  cout << endl;

  // Проверка наличия числовых пределов у типа string
  cout << "is_specialized(string): "
    << numeric_limits<string>::is_specialized << endl;

  getch();
  return 0;
}
//---------------------------------------------------------------------------
Текст этого примера можно взять здесь.

    Результат выполнения программы зависит от платформы. Один из возможных вариантов выглядит так:


Рис.1. Результат работы приложения

    Последняя строка означает, что для типа string числовые пределы не поддерживаются. Впрочем, это вполне логично, поскольку строки не являются числовыми величинами. Однако приведенный пример наглядно показывает, что программист может обратиться с запросом к любому типу и узнать, поддерживает ли он числовые пределы.

    Со следующего шага мы начнем рассматривать вспомогательные функции.




Предыдущий шаг Содержание Следующий шаг