Как вывести элементы вектора c
Вывести элементы вектора, вывести их адрес
Задача. Создать вектор указателей на строки. Вывести элементы вектора, вывести их адрес. При решение задачи надо использовать логические выражение. Ибо задача этого раздела. Но не знаю как использовать тут логические выражение. Написал программу. По моему мнению очень плохую но по другому не могу. Компилировал с ошибкой зависла программа не хочет выйти с программы надо перезагрузит комп. Но не хочу тратит времени на перезагрузку. Потом надо будет заново писать все.
Добавлено через 2 минуты
И я без понятие как вывести адрес элементов вектора если использовал итераторы. Могу переписать код с индексом в место итератора но интересно узнать как вывести адрес элемента вектора при использование итератора.
Добавлено через 1 минуту
И почему не могу закрыт программу даже с диспетчера задач?
Вывести на экран уникальные элементы вектора стринг
Я перепробовал множество способов, просмотрел темы на этом форуме, но для стрингового вектора ни.
Вывести рекурсивно элементы вектора
Вектор из пяти-шести цифр, заполнить вектор рандомно
Как вывести элементы вектора, являющиеся членами класса?
#include #include #include using namespace std; typedef.
Ну я знаю что указатели эти такие штуки которые указывают на некий объект. Не важно что это такое главное чтоб это было записано в памяти. К стати указатели самостоятельные объекты в памяти.
Я знаю что я не правильно написал код. Код компилируеться но символы строки не сохраняются в веектор.
Добавлено через 5 минут
Unhandled exception at 0x00187F14 in Project10.exe: 0xC0000005: Access violation writing location 0x00000000.
Выдает такую вот ошибку. Что это такое? Это не связано с кодом. (на сколько я понял)
Добавлено через 3 минуты
И еще этот код не работает.
нильзя так =(( это же rvalue
Ок надо еще раз прочитать раздел с указателями.
Добавлено через 3 минуты
я делал это в своём коде, который просто вынес и не выкидывал, так что вам они не нужны, а мне было просто лень удалять их)
dzrkot, нуу как бы я самостоятельно изучаю С++. с книги и форума
И какие то проблемы с VS. Раньше использовал VS 2010 все было просто шык. Перешел на VS 2012 начались проблемы. Вот данный код должен работать.
Добавлено через 6 минут
вроде так вообще не делается. мб меня поправит тот, кто знает.
Должно работать но не работает. При получение значение a = ‘\n’ условие функции не выполняеться. цикл должен прекратится. Но не чего не произходит.
Добавлено через 6 минут
Не работает. Все эти варианты рабочие. Первый хоть и не правильный работал в другой программе, второй правильный и не работает ( оператор AND), ваше предложение ввести оператор if тоже вариант но не работает.
После перезагрузки программы может и будет. Мне что каждый раз перезагрузит программу?
BestProg
Перед изучением данной темы рекомендуется ознакомиться со следующей темой:
Содержание
Поиск на других ресурсах:
Метод at() используется для доступа к конкретному элементу массива на основе заданного индекса. Метод имеет 2 перегруженные реализации
здесь T – тип элементов массива.
Первая реализация используется для чтения элемента из массива. Вторая реализация используется для изменения элемента массива.
Пример.
С помощью метода front() можно получить ссылку на первый элемент массива. Синтаксис объявления двух перегруженных реализаций метода следующий
Первая реализация метода позволяет считывать значение первого элемента массива. Вторая реализация позволяет записывать значения в первый элемент массива.
Пример.
Первая реализация используется, когда нужно считать значение из последнего элемента вектора. Вторая реализация используется, когда нужно записать значение в последний элемента вектора.
Пример.
Метод data() позволяет получить указатель на динамический массив. С помощью этого указателя можно иметь доступ к элементам вектора как к обычному массиву.
Синтаксис объявления метода следующий:
тут T – тип элементов вектора.
Пример.
Метод begin() возвращает итератор, указывающий на первый элемент динамического массива. Метод имеет следующую общую форму:
здесь T – тип элементов массива.
Пример.
Метод end() устанавливает итератор на конец массива. Это означает, что итератор установлен на элемент, следующий за последним элементом массива.
Синтаксис объявления метода следующий
Пример.
При работе с итераторами, кроме обычных итераторов различают константные итераторы. В библиотеке STL стандартный итератор объявляется с использованием типа iterator
Константный итератор объявляется с использованием типа constant_iterator
В отличие от обычного (стандартного) итератора, невозможно изменить значение элемента массива с константным итератором. То есть, присваивание константному итератору некоторого значения value
вызовет ошибку компиляции.
Методы cbegin() и cend() предназначены для получения константного итератора, который указывает соответственно на начало и конец массива. Общая форма объявления методов следующая
здесь T – тип элементов массива.
Метод cend() возвращает итератор, указывающий на элемент, следующий за последним элементом массива.
Пример.
Реверсный итератор отличается от обычного итератора тем, что порядок следования элементов рассматривается от конца к началу. С этой точки зрения вносятся все возможные изменения в методах обработки и операциях над итераторами. Так, например, операция приращения итератора it++ осуществляет переход к предыдущему элементу итератора, а не к следующему, как в обычном итераторе.
Реверсный итератор объявляется с использованием ключевого слова reverse_iterator
Методы rbegin() rend () работают с реверсными итераторами. Они позволяют получить итераторы, указывающие соответственно на начало ( rbegin ) и конец ( rend ) массива. Методы имеют следующие перегруженные реализации
Одна из реализаций методов rbegin() и rend() позволяет работать как обычный итератор, допускающий чтение/запись. Вторая реализация этих методов работает как константный итератор, допускающий только чтение.
Пример.
Результат выполнения программы
Изменить значение элементов массива с помощью константного реверсного итератора не удастся.
Как использовать вектор (vecto) в C++
Массив — это серия объектов одного и того же типа в последовательных ячейках памяти. Массив не может увеличить длину руды. Вектор похож на массив, но его длина может быть увеличена или уменьшена. Следовательно, вектор имеет гораздо больше операций, чем массив.
C ++ имеет множество библиотек, все из которых составляют стандартную библиотеку C ++. Одна из этих библиотек — это библиотека контейнеров. Контейнер — это набор объектов, и с этой коллекцией можно выполнять определенные операции. Контейнеры C ++ можно сгруппировать в два набора: контейнеры последовательности и ассоциативные контейнеры. Контейнеры последовательности — это vector, array (не тот массив, который обсуждался ранее), deque, forward_list и list. Это разные коллекции (структуры данных, подобные массивам), и каждая предлагает различные компромиссы.
Любой программист должен знать, как решить, использовать ли вектор, массив, двухстороннюю очередь, forward_list или список. Когда программисту нужна структура, которая требует больше операций, чем те, которые связаны с обычным массивом, обычный массив использовать не следует.
Если задача включает частые вставки и удаления в середине последовательности, следует использовать список или forward_list. Если задача включает частые вставки и удаления в начале или конце последовательности, следует использовать двухстороннюю очередь. Вектор следует использовать, когда такого рода операции не требуются.
В этой статье показано, как использовать вектор C ++. Для понимания этой статьи вам потребуются некоторые знания указателей, ссылок и массивов C ++.
Класс и объекты
Класс — это набор переменных и функций, которые работают вместе, где переменным не присвоены значения. Когда переменным присваиваются значения, класс становится объектом. Различные значения, присвоенные одному и тому же классу, приводят к разным объектам; то есть разные объекты могут принадлежать к одному классу, но иметь разные значения. Создание объекта из класса также известно как создание экземпляра объекта.
Термин вектор описывает класс. Объект, созданный из вектора, имеет имя, выбранное программистом.
Функция, принадлежащая классу, необходима для создания экземпляра объекта из класса. В C ++ эта функция имеет то же имя, что и имя класса. Различные объекты, созданные (экземпляры) из класса, имеют разные имена, данные каждому из них программистом.
Создание объекта из класса означает создание объекта; это также означает создание экземпляра объекта.
Класс Vector
Векторный класс уже определен и находится в библиотеке. Чтобы использовать векторный класс, программист должен включить векторный заголовок в файл со следующей директивой предварительной обработки:
После включения заголовка становятся доступными все векторные функции (элементы данных и функции-члены). Чтобы использовать объект счетчика для вывода данных на терминал (консоль), также должен быть включен заголовок объекта. Чтобы написать программу с вектором, как минимум должны быть включены следующие заголовки:
Создание экземпляра вектора
Выше объявление массива с именем «foo» и количеством элементов «10». Это массив целых чисел. Объявление вектора аналогично. Для вектора количество элементов не является обязательным, поскольку длина вектора может увеличиваться или уменьшаться.
На этом этапе программы векторный класс уже определен в библиотеке, и заголовок включен. Вектор может быть создан следующим образом:
Здесь вектор принадлежит специальной функции-конструктору. Тип данных, которые будет содержать вектор, — это «int» в угловых скобках. Термин «vtr» — это имя, выбранное программистом для вектора. Наконец, «8» в скобках — это ориентировочное количество целых чисел, которые будет иметь вектор.
Перегрузка функции
Когда две или более разных сигнатур функций имеют одно и то же имя, это имя считается перегруженным. Когда вызывается одна функция, количество и тип аргументов определяют, какая функция выполняется.
Построение вектора
Построение вектора означает инстанцирование (создание) векторного объекта. Функция-конструктор перегружается следующим образом:
vector name
Это создает вектор нулевой длины и набирает «T.» Следующая инструкция создает вектор нулевой длины типа «float» с именем «vtr»:
vector name (n)
Это создает вектор с n элементами типа «T.» Утверждение для этого вектора с четырьмя элементами с плавающей запятой выглядит следующим образом:
vector name (n, t)
Это создает вектор из n элементов, инициализированных значением t. Следующий оператор создает вектор из 5 элементов, каждый из которых имеет значение 3,4:
Конструирование с инициализацией
Вектор может быть сконструирован (создан) и инициализирован одновременно одним из следующих двух способов:
Обратите внимание, что сразу после имени объекта скобок нет. Круглые скобки, используемые сразу после имени объекта, должны содержать список инициализаторов, как показано ниже:
Вектор может быть создан и инициализирован позже с помощью списка инициализаторов. В этом случае круглые скобки использоваться не будут:
Это конструктор копирования. Он создает вектор V2 как копию вектора V1. Следующий код иллюстрирует это:
Назначение вектора во время Construction
Во время построения может быть создан пустой вектор, в то время как ему назначен другой, следующим образом:
Второй оператор эквивалентен:
const Vector
Константный вектор — это вектор, элементы которого нельзя изменить. Значения в этом векторе доступны только для чтения. При создании вектор выглядит следующим образом:
В этом векторном типе ни один элемент не может быть добавлен или удален. Более того, никакое значение не может быть изменено.
Конструирование с помощью Iterator
Шаблон предоставляет общее представление для типа данных. Итератор обеспечивает общее представление сканирования значений контейнера. Синтаксис для создания вектора с итератором следующий:
Это создает вектор для диапазона [первый, последний) с использованием указанного распределителя, который будет обсуждаться позже в этой статье.
Уничтожение вектора
Чтобы уничтожить вектор, просто позвольте ему выйти из области видимости, и уничтожение будет выполнено автоматически.
Емкость вектора
size_type capacity () const noexcept
Общее количество элементов, которые вектор может содержать без перераспределения, возвращается функцией-членом емкости. Сегмент кода для этого выглядит следующим образом:
vector float > vtr ( 4 ) ;
int num = vtr. capacity ( ) ;
cout num ‘ \n ‘ ;
reserve(n)
Пространство памяти не всегда доступно. Дополнительное место можно зарезервировать заранее. Рассмотрим следующий фрагмент кода:
vector float > vtr ( 4 ) ;
vtr. reserve ( 6 ) ;
cout vtr. capacity ( ) ‘ \n ‘ ;
Результатом будет 6. Таким образом, зарезервировано дополнительное пространство 6 — 4 = 2 элемента. Функция возвращает void.
size () const noexcept
Это возвращает количество элементов в векторе. Следующий код иллюстрирует эту функцию:
vector float > vtr ( 4 ) ;
float sz = vtr. size ( ) ;
cout sz ‘ \n ‘ ;
shrink_to_fit()
После предоставления дополнительной емкости вектору с помощью функции reserve () размер вектора можно уменьшить, чтобы он соответствовал его исходному размеру. Следующий код иллюстрирует это:
vector float > vtr ( 4 ) ;
vtr. reserve ( 6 ) ;
vtr. shrink_to_fit ( ) ;
int sz = vtr. size ( ) ;
cout sz ‘ \n ‘ ;
На выходе будет 4, а не 6. Функция возвращает void.
resize(sz), resize(sz,c)
Это изменяет размер вектора. Если новый размер меньше старого, то элементы ближе к концу стираются. Если новый размер больше, то ближе к концу добавляется какое-то значение по умолчанию. Чтобы добавить определенную ценность, используйте функцию resize () с двумя аргументами. Следующий фрагмент кода иллюстрирует использование этих двух функций:
New size of vtr1: 2
vtr2: 1.1 2.2 8.8 8.8
Функции возвращают void.
empty() const noexcept
Эта функция возвращает 1 для истины, если в векторе нет элементов, и 0 для false, если вектор пуст. Если вектор имеет 4 местоположения для определенного типа данных, например, с плавающей запятой, без какого-либо значения с плавающей запятой, то этот вектор не является пустым. Следующий код иллюстрирует это:
vector float > vtr ;
cout vtr. empty ( ) ‘ \n ‘ ;
vector float > vt ( 4 ) ;
cout vt. empty ( ) ‘ \n ‘ ;
Доступ к элементу вектора
Вектор может быть подписан (проиндексирован) как массив. Подсчет индекса начинается с нуля.
vectorName[i]
Операция «vectorName [i]» возвращает ссылку на элемент в i- м индексе вектора. Следующий код выводит 3.3 для указанного выше вектора:
vectorName [i] const
Операция «vectorName [i] const» выполняется вместо «vectorName [i]», когда вектор является постоянным вектором. Эта операция используется в следующем коде:
Выражение возвращает постоянную ссылку на i- й элемент вектора.
Присвоение значения с помощью нижнего индекса
Значение может быть присвоено непостоянному вектору следующим образом:
На выходе получается 8.8.
vectorName.at (i)
«VectorName.at (i)» похож на «vectorName [i]», но «vectorName.at (i)» более надежен. Следующий код показывает, как следует использовать этот вектор:
vectorName.at (i) const
«VectorName.at (i) const» похоже на «vectorName [i] const», но «vectorName.at (i) const» более надежен. «VectorName.at (i) const» выполняется вместо «vectorName.at (i)», когда вектор является постоянным вектором. Этот вектор используется в следующем коде:
Присвоение значения с помощью функции at ()
Значение может быть присвоено непостоянному вектору с помощью функции at () следующим образом:
На выходе получается 8.8.
Проблема с подпрограммами
Проблема с дополнительными сценариями (индексированием) заключается в том, что если индекс выходит за пределы допустимого диапазона, может быть возвращен ноль или может возникнуть ошибка во время выполнения.
front()
Это возвращает ссылку на первый элемент вектора без удаления элемента. Результатом следующего кода является 1.1.
Элемент не удаляется из вектора.
front() const
Когда конструкции вектора предшествует const, выражение «front () const» выполняется вместо «front ()». Это используется в следующем коде:
Возвращается постоянная ссылка. Элемент не удаляется из вектора.
back()
Это возвращает ссылку на последний элемент вектора без удаления элемента. Вывод следующего кода — 4.4.
back() const
Когда конструкции вектора предшествует const, выражение «back () const» выполняется вместо «back ()». Это используется в следующем коде:
Возвращается постоянная ссылка. Элемент не удаляется из вектора.
Доступ к векторным данным
data() noexcept; data() const noexcept;
Любой из них возвращает указатель, такой что [data (), data () + size ()) — является допустимым диапазоном.
Подробнее об этом будет рассказано позже в статье.
Возвращение итераторов и вектора
Итератор похож на указатель, но имеет больше функций, чем указатель.
begin() noexcept
Возвращает итератор, указывающий на первый элемент вектора, как в следующем сегменте кода:
На выходе получается 1.1. Обратите внимание, что объявление, которое получает итератор, было объявлено. Итератор разыменовывается в возвращаемом выражении для получения значения так же, как разыменование указателя.
begin () const noexcept;
Возвращает итератор, указывающий на первый элемент вектора. Когда конструкции вектора предшествует константа, выражение «begin () const» выполняется вместо «begin ()». При этом условии соответствующий элемент в векторе не может быть изменен. Это используется в следующем коде:
На выходе получается 1.1. Обратите внимание, что на этот раз был использован «const_iterator» вместо простого «итератора» для получения возвращенного итератора.
end() noexcept
Возвращает итератор, который указывает сразу за последним элементом вектора. Рассмотрим следующий фрагмент кода:
Результатом будет 0, что бессмысленно, поскольку за последним элементом нет конкретного элемента.
end() const noexcept
Возвращает итератор, который указывает сразу за последним элементом вектора. Когда конструкции вектора предшествует «const», выражение «end () const» выполняется вместо «end ()». Рассмотрим следующий фрагмент кода:
Результатом будет 0. Обратите внимание, что на этот раз был использован «const_iterator» вместо простого «итератора» для получения возвращенного итератора.
Обратная итерация
Возможно иметь итератор, который выполняет итерацию от конца до самого первого элемента.
rbegin() noexcept
Возвращает итератор, указывающий на последний элемент вектора, как в следующем сегменте кода:
Обратите внимание, что объявлено объявление, получающее обратный итератор. Итератор разыменовывается в возвращаемом выражении для получения значения так же, как разыменование указателя.
rbegin () const noexcept;
Возвращает итератор, указывающий на последний элемент вектора. Когда конструкции вектора предшествует «const», выражение «rbegin () const» выполняется вместо «rbegin ()». При этом условии соответствующий элемент в векторе не может быть изменен. Эта функция используется в следующем коде:
Обратите внимание, что на этот раз был использован const_reverse_iterator вместо только reverse_iterator для получения возвращенного итератора.
rend () noexcept
Возвращает итератор, который указывает непосредственно перед первым элементом вектора. Рассмотрим следующий фрагмент кода:
Результатом будет 0, что не имеет смысла, поскольку непосредственно перед первым элементом нет конкретного элемента.
rend () const noexcept
Возвращает итератор, который указывает непосредственно перед первым элементом вектора. Когда конструкции вектора предшествует «const», выражение «rend () const» выполняется вместо «rend ()». Рассмотрим следующий фрагмент кода:
Обратите внимание, что на этот раз был использован const_reverse_iterator вместо только reverse_iterator для получения возвращенного итератора.
Векторные модификаторы
Модификатор, изменяющий вектор, может принимать или возвращать итератор.
a.emplace (p, args)
Вставляет объект типа T, созданный с помощью std :: forward (args)… перед p.
insert(iteratorPosition, value)
Вставляет копию значения в позицию итератора вектора. Возвращает итератор (позицию) в векторе, куда была помещена копия. Следующий код показывает, где было размещено значение:
Обратите внимание, что итератор был расширен (увеличен) точно так же, как указатель.
Также можно вставить список инициализаторов, как показано в следующем коде:
cout vtr [ 1 ] ‘ ‘ vtr [ 2 ] ‘
‘ vtr [ 3 ] ‘ ‘ vtr [ 4 ] ‘ \n ‘ ;
erase(position)
Удаляет элемент в позиции, на которую указывает итератор, затем возвращает позицию итератора. Следующий код иллюстрирует это:
push_back(t), push_back(rv)
Используется для добавления одного элемента в конец вектора. Используйте push_back (t) следующим образом:
pop_back()
Удаляет последний элемент, не возвращая его. Размер вектора уменьшается на 1. Следующий код иллюстрирует это:
a.swap(b)
Два вектора можно поменять местами, как показано в следующем фрагменте кода:
cout «vtr2: « vtr2 [ ] » « vtr2 [ 1 ] »
« vtr2 [ 2 ] » « vtr2 [ 3 ] ‘ \n ‘ ;
Обратите внимание, что длина вектора при необходимости увеличивается. Кроме того, значения, для которых не было замен, заменяются некоторым значением по умолчанию.
clear()
Удаляет все элементы из вектора, как показано в следующем сегменте кода:
Операторы равенства и отношения для векторов
The == Operator
Возвращает 1 для истины, если два вектора имеют одинаковый размер и соответствующие элементы равны; в противном случае он возвращает 0 для ложного. Например:
Возвращает 1 для истины, если два вектора не имеют одинакового размера и / или соответствующие элементы не равны; в противном случае он возвращает 0 для ложного. Например:
Класс vector
Класс вектора стандартной библиотеки C++ является шаблоном класса для контейнеров последовательности. Вектор хранит элементы заданного типа в линейном упорядочении и обеспечивает быстрый произвольный доступ к любому элементу. Вектор является предпочтительным контейнером для последовательности, когда производительность произвольного доступа имеет уровень «Премиум».
Синтаксис
Параметры
Type
Тип данных элементов, сохраняемых в векторе.
Комментарии
Для векторов время выполнения вставок и удалений элементов в конце последовательности является постоянной величиной. Время вставки и удаления элементов в середине вектора меняется линейно. Контейнер класса выполняется быстрее при вставке и удалении в начале и в конце последовательности. Контейнер класса выполняется быстрее при вставке и удалении в любом месте в последовательности.
Расширение вектора происходит, когда функции-члену требуется увеличить последовательность в объекте вектора сверх его текущей емкости. Другие операции вставки и стирания могут изменять различные адреса хранения внутри последовательности. Во всех таких случаях итераторы или ссылки, указывающие на изменившиеся части последовательности, становятся недействительными. Если расширения не происходит, действительными остаются только итераторы и ссылки перед точкой вставки или удаления.
Ссылочный класс — это вложенный класс, объекты которого могут предоставлять ссылки на элементы (одиночные биты) внутри vector объекта.
Члены
Конструкторы
Определения типов
Имя | Описание |
---|---|
[allocator_type] (#allocator_type) | Тип, представляющий класс allocator для объекта вектора. |
const_iterator | Тип, предоставляющий итератор произвольного доступа, который может читать элемент const в векторе. |
const_pointer | Тип, предоставляющий указатель на элемент const в векторе. |
const_reference | Тип, предоставляющий ссылку на const элемент, хранящийся в векторе. Он используется для чтения и выполнения const операций. |
const_reverse_iterator | Тип, предоставляющий итератор произвольного доступа, который может читать любой элемент const в векторе. |
difference_type | Тип, представляющий различие между адресами двух элементов в векторе. |
iterator | Тип, предоставляющий итератор произвольного доступа, который может читать или изменять любой элемент в векторе. |
pointer | Тип, предоставляющий указатель на элемент в векторе. |
reference | Тип, предоставляющий ссылку на элемент, хранящийся в векторе. |
reverse_iterator | Тип, предоставляющий итератор произвольного доступа, который может читать или изменять любой элемент в обратном векторе. |
size_type | Тип, считающий количество элементов в векторе. |
value_type | Тип, представляющий тип данных, хранящихся в векторе. |
Функции
Операторы
Имя | Описание |
---|---|
operator[] | Возвращает ссылку на элемент вектора в указанной позиции. |
operator= | Заменяет элементы вектора копией другого вектора. |
allocator_type
Тип, представляющий класс распределителя для объекта вектора.
Комментарии
Пример
Пример использования см. в разделе get_allocator.
assign
Удаляет вектор и копирует указанные элементы в пустой вектор.
Параметры
first
Положение первого элемента в диапазоне копируемых элементов.
last
Положение первого элемента за пределами диапазона копируемых элементов.
count
Количество копий элемента, вставляемых в вектор.
value
Значение элемента, вставляемого в вектор.
init_list
Объект initializer_list, содержащий вставляемые элементы.
Комментарии
assign Во-первых, удаляет все существующие элементы в векторе. Затем assign либо Вставляет указанный диапазон элементов из исходного вектора в вектор, либо вставляет копии нового указанного элемента value в вектор.
Пример
Возвращает ссылку на элемент в заданном положении в векторе.
Параметры
position
Номер нижнего индекса или позиции элемента, на который включается ссылка в векторе.
Возвращаемое значение
Ссылка на элемент, индекс которого указан в аргументе. Если position значение больше размера вектора, at вызывает исключение.
Комментарии
Пример
Возвращает ссылку на последний элемент вектора.
Возвращаемое значение
Последний элемент вектора. Если вектор пуст, возвращаемое значение не определено.
Комментарии
При компиляции с помощью, _ITERATOR_DEBUG_LEVEL заданного как 1 или 2, возникает ошибка времени выполнения при попытке получить доступ к элементу в пустом векторе. Дополнительные сведения см. в разделе проверенные итераторы.
Пример
begin
Возвращает итератор произвольного доступа, указывающий на первый элемент в векторе.
Возвращаемое значение
Комментарии
Пример
capacity
Возвращает число элементов, которое вектор может содержать без выделения дополнительного пространства.
Возвращаемое значение
Текущая длина хранилища, выделенного вектору.
Комментарии
Функция-член resize будет более эффективной, если выделить достаточно памяти для ее размещения. Используйте функцию члена, reserve чтобы указать объем выделенной памяти.
Пример
cbegin
Возвращаемое значение
Комментарии
С возвращаемым значением cbegin элементы в диапазоне нельзя изменять.
Возвращает const итератор после конца, указывающий на элемент, следующий за последним элементом вектора.
Возвращаемое значение
Комментарии
cend используется для проверки того, прошел ли итератор конец диапазона.
Значение, возвращаемое, cend не должно быть разыменовано. Используйте его только для сравнения.
clear
Очищает элементы вектора.
Пример
const_iterator
Тип, предоставляющий итератор произвольного доступа, который может читать элемент const в векторе.
Комментарии
Тип const_iterator нельзя использовать для изменения значения элемента.
Пример
const_pointer
Тип, предоставляющий указатель на элемент const в векторе.
Комментарии
Тип const_pointer нельзя использовать для изменения значения элемента.
Для доступа к элементу вектора обычно используется iterator.
const_reference
Тип, предоставляющий ссылку на const элемент, хранящийся в векторе. Он используется для чтения и выполнения const операций.
Комментарии
Тип const_reference нельзя использовать для изменения значения элемента.
Пример
const_reverse_iterator
Тип, предоставляющий итератор произвольного доступа, который может читать любой элемент const в векторе.
Комментарии
Тип const_reverse_iterator не может изменять значение элемента и используется для прохода по вектору в обратную.
Пример
crbegin
Возвращает константный итератор, который указывает на первый элемент в обратном векторе.
Возвращаемое значение
Комментарии
При возвращении значения crbegin vector объект не может быть изменен.
Пример
crend
Возвращает обратный реверсивный const итератор, указывающий на элемент, следующий за последним элементом в инвертированном векторе.
Возвращаемое значение
const Обратный завершающий итератор для инвертированного вектора. Он указывает элемент, следующий за последним элементом в инвертированном векторе, который совпадает с элементом перед первым элементом неинвертированного вектора. Этот элемент является заполнителем и не должен быть разыменован. Используйте его только для сравнения.
Комментарии
При возвращении значения crend (с соответствующим уменьшением) vector объект изменить нельзя.
Значение, возвращаемое, crend не должно быть разыменовано. Используйте его только для сравнения.
Пример
Возвращает указатель на первый элемент в векторе.
Возвращаемое значение
Пример
difference_type
Тип, предоставляющий разницу между двумя итераторами, ссылающимися на элементы в одном и том же векторе.
Комментарии
difference_type также можно описать как число элементов между двумя указателями, так как указатель на элемент содержит его адрес.
Для доступа к элементу вектора обычно используется iterator.
Пример
emplace
Вставляет элемент, созданный на месте, в указанное положение в векторе.
Параметры
position
Место vector вставки первого элемента.
args
Аргументы конструктора. Функция определяет перегрузку конструктора, которую нужно вызвать, на основе переданных аргументов.
Возвращаемое значение
Комментарии
Любая операция вставки может быть дорогостоящей, см. раздел класс для обсуждения vector производительности.
Пример
emplace_back
Добавляет элемент, созданный на месте, в конец вектора.
Параметры
args
Аргументы конструктора. Функция определяет перегрузку конструктора, которую нужно вызвать, на основе переданных аргументов.
Пример
empty
Проверяет, пуст ли вектор.
Возвращаемое значение
true значение, если вектор пуст; false значение, если вектор не пуст.
Пример
Возвращает итератор после конца, указывающий на элемент, следующий за последним элементом вектора.
Возвращаемое значение
Комментарии
Пример
erase
Удаляет элемент или диапазон элементов в векторе из заданных позиций.
Параметры
position
Положение элемента, удаляемого из вектора.
first
Положение первого элемента, удаляемого из вектора.
last
Положение после последнего элемента, удаляемого из вектора.
Возвращаемое значение
Итератор, указывающий на первый элемент, оставшийся после удаленных элементов, или на указатель конца вектора, если такого элемента не существует.
Пример
front
Возвращает ссылку на первый элемент в векторе.
Возвращаемое значение
Ссылка на первый элемент в объекте вектора. Если вектор пуст, возвращаемое значение не определено.
Комментарии
При компиляции с помощью, _ITERATOR_DEBUG_LEVEL заданного как 1 или 2, возникает ошибка времени выполнения при попытке получить доступ к элементу в пустом векторе. Дополнительные сведения см. в разделе проверенные итераторы.
Пример
get_allocator
Возвращает копию объекта allocator, используемого для создания вектора.
Возвращаемое значение
Распределитель, используемый вектором.
Комментарии
Распределители для класса вектора определяют, как этот класс управляет хранилищем. Распределителей по умолчанию в классах контейнеров стандартной библиотеки C++ достаточно для большинства задач программирования. Написание и использование собственного класса распределителя является расширенной функцией C++.
Пример
insert
Вставляет элемент или несколько элементов или диапазон элементов в указанную позиции в вектор.
Параметры
position
Позиция в векторе, куда вставляется первый элемент.
value
Значение элемента, вставляемого в вектор.
count
Количество элементов, вставляемых в вектор.
first
Положение первого элемента в диапазоне копируемых элементов.
last
Положение первого элемента после диапазона копируемых элементов.
Возвращаемое значение
Две первые функции insert возвращают итератор, указывающий на положение вставки нового элемента в вектор.
Комментарии
Используемые в качестве предусловия first и last не должны быть итераторами в векторе, в противном случае поведение будет неопределенным. Любая операция вставки может быть дорогостоящей, см. раздел класс для обсуждения vector производительности.
Пример
iterator
Тип, предоставляющий итератор произвольного доступа, который может читать или изменять любой элемент в векторе.
Комментарии
Тип iterator можно использовать для изменения значения элемента.
Пример
max_size
Возвращает максимальную длину вектора.
Возвращаемое значение
Максимально возможная длина вектора.
Пример
operator[]
Возвращает ссылку на элемент вектора в указанной позиции.
Параметры
position
Позиция элемента вектора.
Возвращаемое значение
Если заданная позиция больше или равна размеру контейнера, результат не определен.
Комментарии
При компиляции с помощью параметра, _ITERATOR_DEBUG_LEVEL заданного как 1 или 2, возникает ошибка времени выполнения при попытке доступа к элементу за пределами вектора. Дополнительные сведения см. в разделе проверенные итераторы.
Пример
operator=
Заменяет элементы вектора копией другого вектора.
Параметры
Комментарии
Пример
pointer
Тип, предоставляющий указатель на элемент в векторе.
Комментарии
Тип pointer можно использовать для изменения значения элемента.
Пример
pop_back
Удаляет элемент в конце вектора.
Комментарии
Пример кода см. в разделе vector::push_back().
push_back
Добавляет элемент в конец вектора.
Параметры
value
Значение, назначаемое элементу, который добавляется в конец вектора.
Пример
rbegin
Возвращает итератор, указывающий на первый элемент в обратном векторе.
Возвращаемое значение
Обратный итератор произвольного доступа, указывающий на первый элемент в обратном векторе или на последний элемент в исходном векторе.
Комментарии
Пример
reference
Тип, предоставляющий ссылку на элемент, хранящийся в векторе.
Пример
Возвращает обратный реверсивный итератор, указывающий на элемент, следующий за последним элементом в инвертированном векторе.
Возвращаемое значение
Обратный завершающий итератор для инвертированного вектора. Он указывает элемент, следующий за последним элементом в инвертированном векторе, который совпадает с элементом перед первым элементом неинвертированного вектора. Этот элемент является заполнителем и не должен быть разыменован. Используйте его только для сравнения.
Комментарии
rend используется с обратным вектором точно так же, как end используется с вектором.
rend используется, чтобы проверить, достиг ли обратный итератор конца вектора.
Значение, возвращаемое, rend не должно быть разыменовано. Используйте его только для сравнения.
Пример
reserve
Резервирует минимальную длину хранилища для объекта вектора, при необходимости выделяя пространство.
Параметры
count
Минимальная длина хранилища, выделяемого для вектора.
Пример
resize
Определяет новый размер вектора.
Параметры
new_size
Новый размер вектора.
value
Значение инициализации новых элементов, добавленных в вектор, если новый размер больше исходного. Если значение опущено, новые объекты используют конструктор по умолчанию.
Комментарии
size отражает текущий размер вектора.
Пример
reverse_iterator
Тип, предоставляющий итератор произвольного доступа, который может читать или изменять любой элемент в обратном векторе.
Комментарии
Тип reverse_iterator используется для последовательного прохождения через вектор в обратную сторону.
Пример
shrink_to_fit
Удаляет лишнюю емкость.
Пример
Возвращает количество элементов в векторе.
Возвращаемое значение
Текущая длина вектора.
Пример
size_type
Тип, считающий количество элементов в векторе.
Пример
Меняет местами элементы двух векторов.
Параметры
Пример
value_type
Тип, представляющий тип данных, хранящихся в векторе.
Комментарии
Пример
vector
Конструирует вектор. Перегрузки создают вектор определенного размера или с элементами определенного значения. Или, как копия какого-либо другого вектора или его части. Некоторые перегрузки также позволяют указать распределитель для использования.
Параметры
allocator
Класс распределителя для использования с данным объектом. get_allocator Возвращает класс распределителя для объекта.
count
Количество элементов в создаваемом векторе.
value
Значение элементов в создаваемом векторе.
source
Вектор, для которого создаваемый вектор станет копией.
first
Положение первого элемента в диапазоне копируемых элементов.
last
Положение первого элемента за пределами диапазона копируемых элементов.
init_list
Объект, initializer_list содержащий копируемые элементы.
Комментарии
Все конструкторы хранят объект распределителя ( allocator ) и инициализируют вектор.
Первые два конструктора определяют пустой исходный вектор. Второй конструктор явно указывает тип распределителя ( allocator ) для использования.
Восьмой конструктор использует initializer_list, чтобы указать элементы.