Skip to content

9_10_Lesson

Konychev Valera edited this page Apr 14, 2019 · 1 revision

Стандартные структуры данных C++

Библиотека STL

Итераторы

  • Входной, выходной, однонаправленный, двунаправленный, итератор произвольного доступа.

string

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

В реальности string - typedef basic_string string;

Некоторые интересные конструкторы:

  • Конструктор, основанный на диапазоне, - template string(Iter begin, Iter end);. Диапазон начинается на begin(включая) и заканчивается, не включая, на end.
  • Конструктор переноса - string(string&& str) noexcept; C++11.

Другие строки:

  • typedef basic_string string;
  • typedef basic_string<wchar_t> wstring;
    • wchar_t - достаточно для unicode на системе (нет точного размера). Добавлен в язык СИ в 1995 году.
  • typedef basic_string<charl6_t> ul6string;
    • C++11 char16_t - символьные данные, размер фиксированный (16 бит)
  • typedef basic_string<char32_t> u32string;
    • C++11 char32_t - символьные данные, размер фиксированный (32 бит)

vector

vector - шаблонный класс для работы с массивами переменной длины.

valarray

valarray - шаблонный класс для работы с числовыми типами и классами, которые имеют аналогичные свойства. У класса есть методы для выполнения различных операций над числами:

  • operator
  • min()
  • max()
  • sum()
  • size() - колличество элементов в массиве.
  • operator(+,-,*,/,>,<,||,&&,==,!=,>>,<<,|,&,^)()

array С++11

array - шаблонный класс для безопасной работы с массивами фиксированного размера.

  • std::array<Type, NumElems>

queue

priority_queue

deque

list

stack

forward_list

set

multimap

pair

Написание примера итератора