Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 3.18 KB

lecture2.md

File metadata and controls

63 lines (44 loc) · 3.18 KB

Лекция №2 Примитивные типы, std::string и std::vector

В С++ используется статическая типизация, типы всех выражений известны на этапе компиляции.

Фундаментальные типы. Целые числа и char:

  1. int - целое число

    a. short int - минимум 16 бит

    b. long int

    c. long long int

  2. char - всегда 1 байт. По умолчанию может быть как signed char, так и unsigned char.

  3. bool - 1 байт.

Ключевое слово unsigned делает знаковую переменную беззнаковой. При переполнении unsigned происходит взятие остатка по модулю std::numeric_limits< unsigned type >::max() + 1. На размеры типов установлены следующие ограничения: sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long).

Функция sizeof( type ) - возвращает размер типа в байтах. sizeof(char) == 1

Существует следующие целочисленные типы со строго заданным размером:

  1. int16_t - 16 бит (как и следует из названия)
  2. int32_t
  3. int64_t

Другие целочисленные типы

  1. int_fast32_t - целочисленное значение, гарантируется размер больше 32 бит, а из них наиболее быстро работающий на данной архитектуре.
  2. size_t - целое беззнаковое число, размер задается так, чтобы в него помещался любой возможный индекс.

Числа с плавающей точкой:

  1. float - 32 бита
  2. double - 64 бита
  3. long double - 128 бит

Строки:

Для работы со строками нужно подключить библиотеку string.

Строка является просто последовательностью char. В отличии от C строк, в C++ можно быстро получить длину строки с помощю str.length().

Vector:

Для работы со векторами нужно подключить библиотеку vector. Внутри <> пишется тип элемента вектора. Объявлять вектор надо следующим образом:

std::vector<int> a;

Как пройти по всем элементам вектора (с помощью range-based for):

std::vector<int> numbers = {1, 2, 3};
for (int number : numbers) {
	std::cout << number << std::endl;
}

По возможности стоит избегать такого итерирования:

std::vector<int> numbers = {1, 2, 3};
for (size_t i = 0; i < numbers.size(); ++i) { // Менее читабельная запись, лучше избегать
	std::cout << numbers[i] << std::endl;
}