Инструменты пользователя

Инструменты сайта


examination:oop:question17

17. Простые пользовательские типы данных. Перечисления. Векторы: определение типа, семантика, правила использования.

Перечислимый тип задаёт тип, который является подмножеством целого типа. Объявление переменной перечислимого типа задаёт имя переменной и определяет список именованных констант, называемый списком перечисления:

  • enum [<тег>] {<список перечисления>} <описатель> [, <описатель> …];
  • enum <тег> <описатель> [, <описатель> …];

<Тег> предназначен для различения нескольких перечислимых типов, объявленных в одной программе. <Список перечисления> содержит одну или более конструкций вида:

<идентификатор> [= <константное выражение>] Конструкции в списке разделяются запятыми. Каждый <идентификатор> именует элемент списка перечисления. По умолчанию, если не задано <константное выражение>, первому элементу присваивается значение 0, следующему элементу – значение 1 и т.д. Запись = <константное выражение> изменяет умалчиваемую последовательность значений. Элемент, идентификатор которого предшествует записи = <константное выражение>, принимает значение, задаваемое этим константным выражением. Константное выражение должно иметь тип int и может быть как положительным, так и отрицательным. Следующий элемент списка получает значение, равное<константное выражение> + 1, если только его значение не задаётся явно другим константным выражением. В списке перечисления могут содержаться элементы, которым сопоставлены одинаковые значения, однако каждый идентификатор в списке должен быть уникальным. Кроме того, идентификатор элемента списка перечисления должен быть отличным от идентификаторов элементов всех остальных списков перечислений, а также от других идентификаторов.

  • enum Weekdays {SA, SU, MO, TU, WE, TH, FR};
  • enum Weekdays {SA, SU = 0, MO, TU, WE, TH, FR}

Векторы

template < class T, class Allocator = allocator<T> > class vector;

vector— это шаблон из стандартной библиотеки C++, реализующий динамический массив произвольного доступа. Это одна из структур данных, именуемых контейнерами (например, list, deque и т. д.)

Шаблон vector расположен в заголовочном файле <vector>. Как и все стандартные компоненты, он расположен впространстве имен std.

Варианты инициализации:

  • vector<int> myVector; Пустой вектор из элементов типа int * vector<float> myVector(10) Вектор из 10-и элементов типа float
  • vector<char> myVector(5, ' ') Вектор, состоящий из 5-и пробелов class T { … }; n = 10; vector<T> myVector(n); Вектор из 10-и элементов пользовательского типа T

(из с++референсес) Member functions

  • (constructor) Construct vector (public member function)
  • (destructor) Vector destructor (public member function)
  • operator= Copy vector content (public member function )

Iterators:

  • begin Return iterator to beginning (public member function )
  • end Return iterator to end (public member function )
  • rbegin Return reverse iterator to reverse beginning (public member function)
  • rend Return reverse iterator to reverse end (public member function)

Capacity:

  • size Return size (public member function)
  • max_size Return maximum size (public member function )
  • resize Change size (public member function)
  • capacity Return size of allocated storage capacity (public member function)
  • empty Test whether vector is empty (public member function)
  • reserve Request a change in capacity (public member function)

Element access:

  • operator[] Access element (public member function)
  • at Access element (public member function)
  • front Access first element (public member function)
  • back Access last element (public member function)

Modifiers:

  • assign Assign vector content (public member function)
  • push_back Add element at the end (public member function)
  • pop_back Delete last element (public member function)
  • insert Insert elements (public member function)
  • erase Erase elements (public member function )
  • swap Swap content (public member function )
  • clear Clear content (public member function)
examination/oop/question17.txt · Последние изменения: 2014/01/15 12:22 (внешнее изменение)