`
xuning2516
  • 浏览: 7579 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

forward list源码

 
阅读更多

forward_list 源码学习

//forward_list的迭代器是forward_iterator,因此在forward list中需要注意保存前面一个元素的iterator,方便插入和删除。
auto posbefore=flist.before_begin();
for(auto pos=flist.begin();pos!=flist.end();++pos,++posbefore)

例如在remove_if的成员函数 ,删除的是当前元素的后一个元素。

template <class _Tp, class _Alloc> 
template <class _Predicate>
void slist<_Tp,_Alloc>::remove_if(_Predicate __pred)
{
  _Node_base* __cur = &this->_M_head;
  while (__cur->_M_next) {
    if (__pred(((_Node*) __cur->_M_next)->_M_data))
      this->_M_erase_after(__cur);    //删除的是当前元素的下个元素
    else
      __cur = __cur->_M_next;
  }
}
_Slist_node_base* _M_erase_after(_Slist_node_base* __pos)
  {
    _Slist_node<_Tp>* __next = (_Slist_node<_Tp>*) (__pos->_M_next);   //保存当前元素下一个元素的指针,以便删除
    _Slist_node_base* __next_next = __next->_M_next;
    __pos->_M_next = __next_next;
    destroy(&__next->_M_data);
    _M_put_node(__next);
    return __next_next;
 }





分享到:
评论

相关推荐

    c++ ,vs2019, cpp20规范之 forward-list 源码分析

    c++ ,vs2019, cpp20规范之 forward-list 源码分析

    chicken-forward-list:转发列表数据结构

    [wrap-git]directory = chicken-fordward-listurl = https://github.com/chicken-libraries/chicken-fordward-list.gitrevision = main[provide]chicken = chicken_fordward_list_dep 下一步应该是将该包添加到您的...

    ognl源码包值得用一用

    很好的xwork的资源包public void doPost(HttpServletRequest request, HttpServletResponse response) throws ... request.getRequestDispatcher("upload/result3.jsp").forward(request, response);

    RDesktop1.7.0 (源码)

    RDesktop currently runs on most UNIX based platforms with the X Window System, and other ports should be fairly straightforward. RDesktop is released under the GNU Public Licence (GPL), version 3. ...

    遍历搜索图形演示

    遍历搜索图形演示 if (currentpoint.row == m_... DrawSereachLine(g, emDrawType.edt_Forward, emDirect.edt_Up, irow, icol); irow--; continue; } else { currentpoint.up = emSereachResult.dsr_Done; } }

    Devart UniDAC 3.00.0.5 源码安装

    and make sure that correct path to IDE is set (always include forward quote and do not include ending quote) 3) Run 'Make.bat'. Binaries will be copied to %MakePath%\UniDac subfolder 4) Copy %...

    leetcode叫数-DataStructure:常见数据结构C++(leetcode/牛客)

    链式存储:有线性结构(List/ForwardList/deque)和非线性结构(树) 索引存储 散列存储 一定要注意什么叫做线性结构的存储方式。线性结构是如deque,stack,queue这种数据结构,它们的存储方式可以有顺序存储方式,也...

    GPU pro 6、7

    《Gpu Pro6》Real-Time Lighting via Light Linked List:常规Deferred Lighting需要深度,因而半透一般是通过后续的Forward Lighting实现,文中通过自定义Software Depth Test,影响当前屏幕像素点的Light Link ...

    android adb shell 命令大全

    源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。 20. 删除系统应用: adb remount (重新挂载系统分区,使系统分区重新可写)。 adb shell cd system/app rm *.apk 21. 获取管理员权限:...

    TCP-IP详解-卷2实现分两部分-part2

    8.5 转发:ip_forward函数 174 8.6 输出处理:ip_output函数 180 8.6.1 首部初始化 181 8.6.2 路由选择 182 8.6.3 源地址选择和分片 184 8.7 Internet检验和:in_cksum函数 186 8.8 setsockopt和getsockopt系统调用 ...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    :link:常用的数据结构和算法

    :link:常用的数据结构和算法-源码

    jfinalpluginsjfinal-dreampie.zip

    jfinal-dreampie是一个基于jfinal的开源框架库,主要集成或调优功能如下(由于篇幅原因部分源码未贴出,可以到github下载源码): 1.缓存维护更细粒度  @CacheNameRemove(name = AppConstants.DEFAULT_...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为...

    外文翻译 stus MVC

    ActionServlet (Command) creates and uses Action, an ActionForm, and ActionForward. As mentioned earlier, the struts-config.xml file configures the Command. During the creation of the Web project, ...

    超级有影响力霸气的Java面试题大全文档

     Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符...

    java面试题

    20. forward 和redirect的区别 13 21. EJB与JAVA BEAN的区别? 13 22. Static Nested Class 和 Inner Class的不同。 13 23. JSP中动态INCLUDE与静态INCLUDE的区别? 14 24. List, Set, Map区别 14 25. 集合类都有...

    java 面试题 总结

     Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符...

    linux.chm文档

    whereis halt 显示一个二进制文件、源码或man的位置 which halt 显示一个二进制文件或可执行文件的完整路径 挂载一个文件系统 mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经...

Global site tag (gtag.js) - Google Analytics