Шаг 200.
Библиотека STL.
Контейнеры STL. Типы и функции контейнеров. Прямой доступ к элементам

    На этом шаге мы рассмотрим операции прямого доступа к элементам.

  reference контейнер::at (size_type idx) 
  const_reference контейнер::at (size_type idx) const
Обе версии возвращают элемент с индексом idx (первому элементу соответствует индекс 0). Передача недействительного индекса (отрицательного, большего или равного size()) генерирует исключение out_of_range. Полученная ссылка может стать недействительной из-за последующих модификаций или перераспределения памяти. Если вы уверены в правильности индекса, используйте оператор [] - он работает быстрее. Поддерживаются векторами, деками и строками.

  reference контейнер::operator [] (size_type idx) 
  const_reference контейнер::operator [] (size_type idx) const
Обе версии возвращают элемент с индексом idx (первому элементу соответствует индекс 0). Передача недействительного индекса (отрицательного, большего или равного size()) приводит к непредсказуемым последствиям. При вызове необходимо быть твердо уверенным в правильности индекса; в противном случае следует использовать функцию at(). Ссылки, возвращаемые для неконстантных строк, могут стать недействительными из-за последующих модификаций строк или перераспределения памяти. Поддерживаются векторами, деками и строками.

  Т& map::operator [] (const key_type& key)
Оператор [] для ассоциативных массивов. Возвращает значение, соответствующее ключу key в отображении. Если в множестве нет ни одного элемента с ключом key, операция автоматически создает новый элемент со значением, инициализируемым конструктором по умолчанию соответствующего типа, Это означает, что индекс в принципе не может быть недействительным. Пример;
  map<int,string> coll;
  coll[77] = "hello";   // Вставка ключа 77 со значением "hello" 
  cout <<coll[42];      // Ошибка - вставка ключа 42 со значением "" 
                        // и вывод значения
Т - тип значения элемента. Эквивалент следующего вызова:
  (*((insert(make_pair(х,Т()))).first)).second
Поддерживается отображениями.

  reference контейнер::front() 
  const_reference контейнер::front() const
Обе версии возвращают первый элемент (элемент с индексом 0). Вызывающая сторона должна проследить за тем, чтобы контейнер содержал хотя бы один элемент (size()>0), иначе последствия вызова будут непредсказуемыми. Поддерживаются векторами, деками и списками.

  reference контейнер::back() 
  const_reference контейнер::back() const
Обе версии возвращают последний элемент (элемент с индексом size()-1). Вызывающая сторона должна проследить за тем, чтобы контейнер содержал хотя бы один элемент (size()>0), иначе последствия вызова будут непредсказуемыми. Поддерживаются векторами, деками и списками.

    На следующем шаге мы рассмотрим операции получения итераторов.




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