C++ STL 教程 在前面的章节中,我们已经学习了 C++ 模板的概念。
C++ STL 教程在前面的章节中,我们已经学习了 C++ 模板的概念。
在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到
deque容器 deque容器基本概念 功能: 双端数组,可以对头端进行插入删除操作 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低 deque相对而言,对头部的插入删除速度回比vector快 vector访问元素时的速度会比deque快,这和两者内部实现有关 deque内部工作原理: deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据 中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间 deque容器的迭代器也
c++中的tuple是一个允许存放多种不同的数据类型的容器,是针对pair的泛型,和pair一样在std 的namespace中,在使用的时候,需要引用头文件,同时注意namespace;
概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口
1. 队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元
1.可以用下标访问的容器有(既可以插入也可以赋值):vector、deque、map;
固然我们可以自己使用递归编写全排列程序,但是既然STL里面已将有了这个功能为什么不直接用呢,下面就写一下直接使用C++ STL生成全排序的程序 函数名:next_permutation 包含头文件:algorithm 函数原型: template<class BidirectionalIterator> bool next_permutation(BidirectionalIterator _First, BidirectionalIterator _Last ); template<class
capacity的代码在vs和g++下分别运行会发现,vs下capacity是按1.5倍增长的,g++是按2
总结: vector赋值方式比较简单,使用operator=,或者assign都可以
例如:查找find,拷贝copy,删除delete 替换replace,插入insert
1. begin 与 end 为正向迭代器,对迭代器执行 ++ 操作,迭代器向后移动
在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。
在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,后来这个
前言:在上一篇文章中,我们介绍了二叉搜索树这种树形结构,它与之前学过的序列式容器有所不同。本文将重点讲解基于二叉搜索树实现的两个容器之一:set。它的底层实现也采用了平衡二叉搜索树。
前言:在上一篇文章中,我们介绍了二叉搜索树这种树形结构,它与之前学过的序列式容器有所不同。本文将重点讲解基于二叉搜索树实现的另外一个容器:map。它的底层实现也采用了平衡二叉搜索树。
什么是适配器呢?生活中我们用的充电器就是,一个充电器可以给好几种手机使用。 适配器是一种设计模式:该种模式是将一个类的接口转换成客户希望的另外一个接口。
1.所有元素在插入时就会被自动排序。 2.底层是二叉树的实现。 3.set中不允许有重复的元素,multiset里面允许有重复的元素。 一、构造函数 set<T> st; set(const set &st); 二、赋值 set& operator(const set &st); 三、大小和交换 size(); empty(); swap(); 四、插入和删除 insert(ele); clear(); erase(pos); erase(beg,end); erase(ele); 五、查找和统计 find