首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求remove_if逻辑处理过程,数据怎么移动的

2012-02-25 
求remove_if逻辑处理过程,数据如何移动的?求remove_if逻辑处理过程,数据如何移动的?[解决办法]g++的实现,

求remove_if逻辑处理过程,数据如何移动的?
求remove_if逻辑处理过程,数据如何移动的?

[解决办法]
g++的实现,当然得移动元素了。

C/C++ code
  template<typename _InputIterator, typename _OutputIterator,           typename _Predicate>    _OutputIterator    remove_copy_if(_InputIterator __first, _InputIterator __last,                   _OutputIterator __result, _Predicate __pred)    {      for ( ; __first != __last; ++__first)        if (!__pred(*__first))          {            *__result = *__first;            ++__result;          }      return __result;    }  template<typename _ForwardIterator, typename _Predicate>    _ForwardIterator    remove_if(_ForwardIterator __first, _ForwardIterator __last,              _Predicate __pred)    {      __first = std::find_if(__first, __last, __pred);      _ForwardIterator __i = __first;      return __first == __last ? __first                               : std::remove_copy_if(++__i, __last,                                                     __first, __pred);    }
[解决办法]
这个....
你下一个sgi的stl实现就行了

http://www.sgi.com/tech/stl/stl.tar

热点排行