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