Типы и функции контейнеров. Прямой доступ к элементам

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

  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), иначе последствия вызова будут непредсказуемыми.
Поддерживаются векторами, деками и списками.

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий