55 #ifndef _GLIBCXX_DEQUE
56 #define _GLIBCXX_DEQUE 1
58 #pragma GCC system_header
61 #if __cplusplus > 201703L
75 #ifdef _GLIBCXX_PROFILE
79 #if __cplusplus >= 201703L
80 namespace std _GLIBCXX_VISIBILITY(default)
82 _GLIBCXX_BEGIN_NAMESPACE_VERSION
85 template<
typename _Tp>
class polymorphic_allocator;
86 template<
typename _Tp>
89 _GLIBCXX_END_NAMESPACE_VERSION
93 #if __cplusplus > 201703L
94 namespace std _GLIBCXX_VISIBILITY(default)
96 _GLIBCXX_BEGIN_NAMESPACE_VERSION
98 #define __cpp_lib_erase_if 201900L
100 template<
typename _Tp,
typename _Alloc,
typename _Predicate>
101 inline typename deque<_Tp, _Alloc>::size_type
102 erase_if(deque<_Tp, _Alloc>& __cont, _Predicate __pred)
104 const auto __osz = __cont.size();
105 __cont.erase(std::remove_if(__cont.begin(), __cont.end(), __pred),
107 return __osz - __cont.size();
110 template<
typename _Tp,
typename _Alloc,
typename _Up>
111 inline typename deque<_Tp, _Alloc>::size_type
112 erase(deque<_Tp, _Alloc>& __cont,
const _Up& __value)
114 const auto __osz = __cont.size();
115 __cont.erase(std::remove(__cont.begin(), __cont.end(), __value),
117 return __osz - __cont.size();
119 _GLIBCXX_END_NAMESPACE_VERSION
A standard container using fixed-size memory allocation and constant-time manipulation of elements at...