8 #ifndef SIG_UTIL_REMOVE_HPP
9 #define SIG_UTIL_REMOVE_HPP
11 #include "../sigutil.hpp"
12 #include "../helper/container_helper.hpp"
35 class CR =
typename impl::remove_const_reference<C>::type,
36 class T =
typename impl::container_traits<CR>::value_type
40 std::map<T, uint> removed;
43 if (!removed.count(*it)){
49 it = container.erase(it);
50 end = container.end();
58 #define Sig_Eraser_ParamType1 typename boost::call_traits<typename impl::container_traits<C>::value_type>::param_type
60 #define Sig_Eraser_ParamType1 typename std::common_type<typename impl::container_traits<C>::value_type>::type const&
112 template <
class Pred,
class C>
116 if (remove_pred(*it)){
150 uint presize = container.size();
152 if (!container.empty())
erase(container,
remove);
154 return presize != container.size();
172 template <
class Pred,
class C>
175 uint presize = container.size();
177 if (!container.empty())
erase_if(container, remove_pred);
179 return presize != container.size();
#define Sig_Eraser_ParamType1
bool remove_one(C &container, typename boost::call_traits< typename impl::container_traits< C >::value_type >::param_type remove)
コンテナから指定した値を1つ削除
auto end(C &&c) -> std::move_iterator< typename RC::iterator >
auto remove_duplicates(C &container)
コンテナの要素から重複した値を削除
bool remove_one_if(C &container, Pred remove_pred)
コンテナから述語条件を満たす値を1つ削除
void erase(C &container, typename impl::sequence_container_traits< C >::value_type const &t)
void erase_if(C &container, F const &remove_pred)
bool remove_all(C &container, typename boost::call_traits< typename impl::container_traits< C >::value_type >::param_type remove)
コンテナから指定した値を全削除
bool remove_all_if(C &container, Pred remove_pred)
コンテナから述語条件を満たす値を全削除
auto begin(C &&c) -> std::move_iterator< typename RC::iterator >