深入分析C++中deque的使用

2016-02-19 10:04 1 1 收藏

下面是个深入分析C++中deque的使用教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

首先,当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)Deque总览

deque和vector一样都是标准模板库中的内容,deque是双端队列,在接口上和vector非常相似,在许多操作的地方可以直接替换。假如读者已经能够有效地使用vector容器,下面提供deque的成员函数和操作,进行对比参考。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)函数描述c.assign(beg,end)
c.assign(n,elem) 将[beg; end)区间中的数据赋值给c。
将n个elem的拷贝赋值给c。c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。c.back() 传回最后一个数据,不检查这个数据是否存在。c.begin() 传回迭代器重的可一个数据。c.clear() 移除容器中所有数据。dequeElem c
dequeElem c1(c2)
DequeElem c(n)
DequeElem c(n, elem)
DequeElem c(beg,end)
c.~dequeElem() 创建一个空的deque。
复制一个deque。
创建一个deque,含有n个数据,数据均已缺省构造产生。
创建一个含有n个elem拷贝的deque。
创建一个以[beg;end)区间的deque。
销毁所有数据,释放内存。c.empty() 判断容器是否为空。c.end() 指向迭代器中的最后一个数据地址。c.erase(pos)
c.erase(beg,end) 删除pos位置的数据,传回下一个数据的位置。
删除[beg,end)区间的数据,传回下一个数据的位置。c.front() 传回地一个数据。get_allocator 使用构造函数返回一个拷贝。c.insert(pos,elem) 
c.insert(pos,n,elem)
c.insert(pos,beg,end)在pos位置插入一个elem拷贝,传回新数据位置。
在pos位置插入n个elem数据。无返回值。
在pos位置插入在[beg,end)区间的数据。无返回值。c.max_size() 返回容器中最大数据的数量。c.pop_back() 删除最后一个数据。c.pop_front() 删除头部数据。c.push_back(elem) 在尾部加入一个数据。c.push_front(elem) 在头部插入一个数据。c.rbegin() 传回一个逆向队列的第一个数据。c.rend() 传回一个逆向队列的最后一个数据的下一个位置。c.resize(num) 重新指定队列的长度。c.size() 返回容器中实际数据的个数。C1.swap(c2) 
Swap(c1,c2)将c1和c2元素互换。
同上操作。

来源:https://www.tulaoshi.com/n/20160219/1593241.html

延伸阅读
点击上传按钮后,webwork的程序流如下: step 1)进入ServletDispatcher.service public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException { ........ request = wrapRequest(request); ......... } step2)进入ServletDispatcher.wrapRequest protect...
1.源程序的编译     在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c):  int main(int argc,char **argv)   { printf("Hello Linux/n");   } 要编译这个程序,我们只要在命令行下执行: gcc -o h...
Java中使用的路径,分为两种:绝对路径和相对路径。 归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的! 在开发Web方面的应用时, 经常需要获取 服务器中当前WebRoot的物理路径。 如果是Servlet , Action , Controller, 或则Filte...
首先是引用情形下的c++源码: 代码如下: void add(int a, int b, int&c) {     c = a + b; } int main() {     int a = 1;     int b = 2;     int c = 0;     add(a, b, c); } 下面是main对应的汇编码: 代码如下: ; 6    : int mai...
c++中的源程序: 代码如下: class X { private:     int i; }; int main() {     X x; } 上面的类X没有定义构造函数,仅仅有一个int i。 下面为其汇编程序: 代码如下: ; 7    : int main() {     push    ebp;ebp为一个寄存器,总是指向一个函数调用...

经验教程

384

收藏

61
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部