55 #ifndef _GLIBCXX_VECTOR
56 #define _GLIBCXX_VECTOR 1
58 #pragma GCC system_header
69 #ifndef _GLIBCXX_EXPORT_TEMPLATE
77 #if __cplusplus >= 201703L
78 namespace std _GLIBCXX_VISIBILITY(default)
80 _GLIBCXX_BEGIN_NAMESPACE_VERSION
82 template<
typename _Tp>
class polymorphic_allocator;
83 template<
typename _Tp>
86 # ifdef _GLIBCXX_DEBUG
87 namespace _GLIBCXX_STD_C::pmr {
88 template<
typename _Tp>
90 = _GLIBCXX_STD_C::vector<_Tp, std::pmr::polymorphic_allocator<_Tp>>;
93 _GLIBCXX_END_NAMESPACE_VERSION
97 #if __cplusplus > 201703L
98 namespace std _GLIBCXX_VISIBILITY(default)
100 _GLIBCXX_BEGIN_NAMESPACE_VERSION
102 #define __cpp_lib_erase_if 202002L
104 template<
typename _Tp,
typename _Alloc,
typename _Predicate>
106 inline typename vector<_Tp, _Alloc>::size_type
107 erase_if(vector<_Tp, _Alloc>&
__cont, _Predicate __pred)
110 const auto __osz =
__cont.size();
111 const auto __end =
__cont.end();
112 auto __removed = std::__remove_if(
__cont.begin(), __end,
113 __ops::__pred_iter(std::ref(__pred)));
114 __cont.erase(__removed, __end);
115 return __osz -
__cont.size();
118 template<
typename _Tp,
typename _Alloc,
typename _Up>
120 inline typename vector<_Tp, _Alloc>::size_type
121 erase(vector<_Tp, _Alloc>&
__cont,
const _Up& __value)
124 const auto __osz =
__cont.size();
125 const auto __end =
__cont.end();
126 auto __removed = std::__remove_if(
__cont.begin(), __end,
127 __ops::__iter_equals_val(__value));
128 __cont.erase(__removed, __end);
129 return __osz -
__cont.size();
131 _GLIBCXX_END_NAMESPACE_VERSION
ISO C++ entities toplevel namespace is std.
GNU extensions for public use.
A standard container which offers fixed time access to individual elements in any order.