std::forward_list<T,Allocator>::clear
void clear() noexcept; | (since C++11) |
Удаляет все элементы из контейнера.
Делает недействительными все ссылки, указатели или итераторы, ссылающиеся на содержащиеся элементы. Любой итератор, указывающий на конец контейнера, остается действительным.
Параметры
(нет)
Возвращаемое значение
(нет)
Сложность
Линейная, по отношению к размеру контейнера, т.е. количеству элементов.
Пример
#include <iostream>
#include <string_view>
#include <forward_list>
void print_info(std::string_view rem, const std::forward_list<int>& v)
{
std::cout << rem << "{ ";
for (const auto& value : v)
std::cout << value << ' ';
std::cout << "}\n";
}
int main()
{
std::forward_list<int> container{1, 2, 3};
print_info("Before clear: ", container);
container.clear();
print_info("After clear: ", container);
}Вывод:
Before clear: { 1 2 3 }
After clear: { }Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, как опубликовано | Корректное поведение |
|---|---|---|---|
| LWG 2231 | C++11 | гарантия сложности была ошибочно опущена в C++11 | сложность подтверждена как линейная |
См. также
| удаляет элемент после элемента (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/forward_list/clear