关闭

【C++ STL学习之七】STL算法之find和find_if

一、find()算法 template InputIterator find ( InputIterator first, InputIterator last, const T& value ) { for ( ;first!=last; first++) if ( *first==value ) break; return first; }返回区间[first,e...
阅读(15102) 评论(0)

【C++ STL学习之六】STL算法之for_each

for_each()函数将调用者提供的操作施加于每一个元素身上。它既可以是非变动性算法,也可以说是变动性算法。 template Function for_each (InputIterator first, InputIterator last, Function f); 将函数f施加于区间[first,last)的每一个元素身上。其实现: template Function...
阅读(2593) 评论(0)

【C++ STL学习之五】容器set和multiset

一、set和multiset基础 set和multiset会根据特定的排序准则,自动将元素进行排序。不同的是后者允许元素重复而前者不允许。 需要包含头文件: #include set和multiset都是定义在std空间里的类模板: template<class _Kty, class _Pr = less, class _Alloc = allocator...
阅读(46054) 评论(5)

【C++ STL学习之四】容器list深入学习

一、list基础 List使用一个双向链表来管理元素。图一显示了list的结构。 图一 list的结构 任何型别只要具备赋值和可拷贝两种性质,就可以作为list的元素。 二、list的功能 list的内部结构和vector和deque截然不同,在很多方面都表现不同: 1、list不支持随机存取。所及既不提供下表操作符,也不提供at()函数。 2、任何位置上插入元素删除...
阅读(3574) 评论(1)

【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式

GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。 一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。 如下图所示: GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5,以此类推。如果...
阅读(43824) 评论(10)

【C++ STL学习之三】容器deque深入学习

C++ STL容器deque和vector很类似,也是采用动态数组来管理元素。 使用deque之前需包含头文件: #include 它是定义在命名空间std内的一个class template: template class _Ax = allocator > class deque; 第一个template参数用来表示元素型别,第二个可有可无,指定内存模型。一般使...
阅读(13103) 评论(1)

【C++ STL学习之二】容器vector大总结

一、容器vector 使用vector必须包含头文件: #include 型别vector是一个定义于namespace std内的template: template第二个参数定义内存模型。我们一般采用默认的内存模型。 二、vector的功能 vector模塑出一个动态数组。vector将其元复制...
阅读(4884) 评论(1)

【C++ STL学习之一】容器的共通能力和共通操作总结

一、C++ STL各容器有一些共通的能力 其中三个最核心的能力是: (1)所有容器提供的是“value语意”而不是“reference语意”。 容器进行元素的安插操作时,内部实施的是拷贝操作,存放的是元素的副本。因此容器的每一个元素必须能被拷贝。 如果打算存放的对象不具备public 拷贝构造函数或者你要得不是对象的副本,那么容器元素只能是指针。 (2)所有元素形成一个次序。 我们可以...
阅读(2092) 评论(0)
    个人资料
    • 访问:1717230次
    • 积分:14025
    • 等级:
    • 排名:第912名
    • 原创:122篇
    • 转载:15篇
    • 译文:6篇
    • 评论:928条
    博客专栏
    公告
    博客已迁移至:http://xiajunhust.github.io/