zoukankan      html  css  js  c++  java
  • STL学习

    基础知识:

    map:http://www.cnblogs.com/skynet/archive/2010/06/18/1760518.html

    容器deque深入学习:http://www.2cto.com/kf/201204/126761.html

    迭代器失效问题:http://blog.163.com/guo_linda/blog/static/123773057201151033144945/

    erase:

    http://blog.chinaunix.net/uid-9435177-id-2002677.html

    http://blog.csdn.net/yangruibao/article/details/9040045

    http://www.cnblogs.com/kex1n/archive/2011/12/06/2278505.html

    迭代器:

    http://wenku.baidu.com/link?url=_04pbSwzGhYjiTOP7m02OflOKU41HXy8aR89oscb8xaO0DAX5zseBJVCEVcs8nZTgk3JM4gV0upJRd8d5_eQcU3YoK-lJeu9ROE8YnIo4tO

    http://blog.csdn.net/touzani/article/details/1643859

    容器:

    各容器对比表,包括操作以及时间复杂度:http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832675.html

    容器总结:http://www.cnblogs.com/duzouzhe/archive/2010/01/12/1645191.html

    容器总结:http://www.cnblogs.com/sharpfeng/archive/2012/09/18/2691096.html

    红黑树实现-stl map:http://www.dklkt.cn/article.asp?id=181 

    知乎关于红黑树的全面解读:http://www.zhihu.com/question/20545708

    容器操作之总结:http://wenku.baidu.com/link?url=uvfam9KFb-Y-qPJKL1Azzmb3W7YTA6DMQ8xACiuE-rHsFKAcwe_-0BFmCMF0pVfsF26SU3ZYt6LInTAaqaFZozJoCeC1pyi6ee04jZDPwV_

    容器的对比:http://wenku.baidu.com/link?url=mTc3jkARGIj8S9l-hwDhIdQjovwCpgAK1KxPfmHszBRtrf_sy6SKjXdu4Q1T_LzmhgHj0zl82eda3Mm5DX1xwjf_33dJscquMFhm6xX8V-a

    关联容器概述:http://blog.csdn.net/yfkiss/article/details/6594859

    stl list:http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html

    stl set:http://baike.baidu.com/view/4255961.htm?fr=aladdin     http://www.cppblog.com/huyutian/articles/107457.html

     ---------------------------------------------------------------实现------------------------------------------------------------------------------------------------

    关于stl内存的实现:

    C++ 内存分配(new,operator new)详解:http://blog.163.com/redhumor@126/blog/static/195547842010621103749696/

    另附:线程安全几个重要概念

    彻底学习STL中的Allocator(不看也罢)

    SGI STL 的内存管理

    STL中的vector的实现

    C 工具库3:固定大小的 obj pool

    ------------------------------------------------------------------------实现------------------------------------------------------------------------------------------------

    各种树:AVL B树 B+树等

    avl树:http://baike.baidu.com/view/671745.htm?fr=aladdin

    http://blog.163.com/redhumor@126/blog/static/195547842010621103749696/

    算法以及实现:

    http://www.cnblogs.com/kzloser/archive/2012/11/02/2751424.html 这篇博客讲tcp部分也很好

    http://www.cppblog.com/mzty/archive/2007/03/14/19819.html

    http://blog.csdn.net/calmreason/article/details/17010745

     sort算法的实现:http://www.cppblog.com/mzty/archive/2005/12/15/1770.html

    三十分钟掌握stl:http://net.pku.edu.cn/~yhf/UsingSTL.htm

    代码优化:

    http://www.cnblogs.com/daoluanxiaozi/archive/2012/04/15/2450134.html  (来源于编程珠玑,C++的其他博客也貌似不错)

    白杨里面有个关于异常实现机制:http://baiy.cn/

    想看还没看的:

    关于operator new

    http://blog.sina.com.cn/s/blog_3c6889fe0100tqe8.html

    http://www.cnblogs.com/wanghetao/archive/2011/11/21/2257403.html

    关于stl的:

    内存分配:http://www.cnblogs.com/cobbliu/archive/2012/04/05/2431804.html

    迭代器实现:http://www.cnblogs.com/cobbliu/archive/2012/04/17/2440347.html

    迭代器分类:http://www.360doc.com/content/14/0106/09/1317564_342968414.shtml       http://blog.csdn.net/touzani/article/details/1643859

    关于stl的remove算法和list的remove方法

    概括来讲,stl的remove算法由于不清楚如何删除元素(无法通过迭代器来删除,不清楚是什么容器),所以只能讲元素逐个向前移动,返回新集合最后一个元素的最后一个元素(因此size不变),然后调用erase方法(由于要删除元素,所以只能是容器的方法而不是以算法的形式实现)。而list数据结构的特点决定了如果要删除元素是不能使用移动的方式的,故单独实现了一个方法。

    如果容器是vector、string或者deque,使用erase-remove的惯用法。如果容器是list,使用list::remove,如果是关联容器使用erase成员函数

    同样,如果是vector/string/deque,使用erase-remove_if惯用法,如果是list使用remove_if,如果是关联容器使用remove_copy_if和swap组合算法

    remove算法原型,使用泛型,传递的参数为迭代器

    template<class ForwardIterator, class T>

    ForwardIterator remove(ForwardIterator first, ForwardIterator last, const T&value)

    相关链接:http://blog.csdn.net/vbanglev/article/details/1512521

    http://www.cnblogs.com/kinuxroot/archive/2013/01/25/stl_remove_problem.html

    迭代器

    迭代器就是为各容器生成一个可以迭代自身的类,而再通过typedef来把该迭代类绑定到容器类中,这样就给了外部一个形式统一的使用方法。(http://blog.csdn.net/junguo/article/details/671142)

    list的迭代器是否可以使用++运算符,为什么list内存不连续迭代器也可以++。答:迭代器是一个类,作为容器的成员,++运算符不同的迭代器有与之对应的实现。

    为什么迭代器会失效,以及失效的情况(map erase之后会不会失效)

    迭代器是算法和容器相互沟通的桥梁,算法能否使用容器关键是看容器能否提供相应的接口。还是觉得算法和容器没必要分开。

    相关链接:

    http://blog.csdn.net/junguo/article/details/671142   解释了迭代器的实现,几种迭代器实际定义是空

  • 相关阅读:
    300+值得收藏的设计师免费资源站
    Apache 隐藏入口文件 index.php
    Nginx 虚拟主机下支持Pathinfo并隐藏入口文件的完整配置
    Java多线程
    Java注解
    Java异常机制
    面向对象
    数组
    Java方法(函数)
    Java流程控制(Scanner)
  • 原文地址:https://www.cnblogs.com/johnnyflute/p/3813178.html
Copyright © 2011-2022 走看看