функция размера списка () в C ++ STL
List :: size () — это встроенная функция в C ++ STL, которая используется для определения количества элементов, присутствующих в контейнере списка. То есть он используется для определения размера контейнера списка.
Синтаксис :
Параметры : эта функция не принимает никаких параметров.
Возвращаемое значение : эта функция возвращает количество элементов, присутствующих в списке контейнера list_name .
Ниже программа иллюстрирует функцию list :: size () в C ++ STL:
// Программа CPP для иллюстрации
// list :: size () функция
#include <bits/stdc++.h>
Как узнать размер list c
Контейнер list представляет двухсвязный список. Для его использования необходимо подключить заголовочный файл list .
Получение элементов
В отличие от других контейнеров для типа list не определена операция обращения по индексу или функция at(), которая выполняет похожую задачу.
Тем не менее для контейнера list можно использовать функции front() и back() , которые возвращают соответственно первый и последний элементы.
Чтобы обратиться к элементам, которые находятся в середине (после первого и до последнего элементов), придется выполнять перебор элементов с помощью циклов или итераторов:
Размер списка
Для получения размера списка можно использовать функцию size() :
Функция empty() позволяет узнать, пуст ли список. Если он пуст, то функция возвращает значение true, иначе возвращается значение false:
С помощью функции resize() можно изменить размер списка. Эта функция имеет две формы:
resize(n) : оставляет в списке n первых элементов. Если список содержит больше элементов, то он усекается до первых n элементов. Если размер списка меньше n, то добавляются недостающие элементы и инициализируются значением по умолчанию
resize(n, value) : также оставляет в списке n первых элементов. Если размер списка меньше n, то добавляются недостающие элементы со значением value
Изменение элементов списка
Функция assign() позволяет заменить все элементы списка определенным набором. Она имеет следующие формы:
assign(il) : заменяет содержимое контейнера элементами из списка инициализации il
assign(n, value) : заменяет содержимое контейнера n элементами, которые имеют значение value
assign(begin, end) : заменяет содержимое контейнера элементами из диапазона, на начало и конец которого указывают итераторы begin и end
Функция swap() обменивает значениями два списка:
Добавление элементов
Для добавления элементов в контейнер list применяется ряд функций.
push_back(val) : добавляет значение val в конец списка
push_front(val) : добавляет значение val в начало списка
emplace_back(val) : добавляет значение val в конец списка
emplace_front(val) : добавляет значение val в начало списка
emplace(pos, val) : вставляет элемент val на позицию, на которую указывает итератор pos. Возвращает итератор на добавленный элемент
insert(pos, val) : вставляет элемент val на позицию, на которую указывает итератор pos, аналогично функции emplace. Возвращает итератор на добавленный элемент
insert(pos, n, val) : вставляет n элементов val начиная с позиции, на которую указывает итератор pos. Возвращает итератор на первый добавленный элемент. Если n = 0, то возвращается итератор pos.
insert(pos, begin, end) : вставляет начиная с позиции, на которую указывает итератор pos, элементы из другого контейнера из диапазона между итераторами begin и end. Возвращает итератор на первый добавленный элемент. Если между итераторами begin и end нет элементов, то возвращается итератор pos.
insert(pos, values) : вставляет список значений values начиная с позиции, на которую указывает итератор pos. Возвращает итератор на первый добавленный элемент. Если values не содержит элементов, то возвращается итератор pos.
Функции push_back() , push_front() , emplace_back() и emplace_front() :
Добавление в середину списка с помощью функции emplace() :
Добавление в середину списка с помощью функции insert() :
Удаление элементов
Для удаления элементов из контейнера list могут применяться следующие функции:
clear(p) : удаляет все элементы
pop_back() : удаляет последний элемент
pop_front() : удаляет первый элемент
erase(p) : удаляет элемент, на который указывает итератор p. Возвращает итератор на элемент, следующий после удаленного, или на конец контейнера, если удален последний элемент
erase(begin, end) : удаляет элементы из диапазона, на начало и конец которого указывают итераторы begin и end. Возвращает итератор на элемент, следующий после последнего удаленного, или на конец контейнера, если удален последний элемент
List<T>.Count Свойство
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает число элементов, содержащихся в интерфейсе List<T>.
Значение свойства
Число элементов, содержащихся в интерфейсе List<T>.
Реализации
Примеры
В следующем примере показано, как проверить емкость и количество объектов List<T> , содержащих простой бизнес-объект, иллюстрирует использование TrimExcess метода для удаления дополнительной емкости.
В следующем примере показано значение Count свойства в различных точках в жизненном цикле списка. После создания и заполнения списка и отображения Capacity его элементов отображаются и Count свойства. Эти свойства снова отображаются после TrimExcess вызова метода и снова после очистки содержимого списка.
Комментарии
Capacity — это количество элементов, которые List<T> могут храниться перед изменением размера. Count — это количество элементов, которые фактически находятся в элементе List<T>.
Capacity всегда больше или равно Count. При Count превышении при добавлении Capacity элементов емкость увеличивается путем автоматического перераспределения внутреннего массива перед копированием старых элементов и добавлением новых элементов.
Получение значения данного свойства является операцией порядка сложности O(1).