den*_*dym 1 c++ gcc stl set multiset
可能重复:
remove_if等效于std :: map
昨天我写了一个程序,它使用multiset来存储这样的元素:
std::multiset < boost::shared_ptr < CEntity > > m_Entities;
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用这样的标准算法remove_if:
std::remove_if(m_Entities.begin, m_Entities.end(), MarkedForDestroy);
Run Code Online (Sandbox Code Playgroud)
但是编译失败了,因为如果我们在GCC 4.4中看到set和multiset的实现,我们看到:
typedef typename _Rep_type::const_iterator iterator;
typedef typename _Rep_type::const_iterator const_iterator;
Run Code Online (Sandbox Code Playgroud)
我感到震惊.我这一刻谷歌更好,我发现这与标准不矛盾.集合相同.
如果标准算法不起作用,这怎么会不相矛盾?我怎样才能更好地更换容器?