首页 > 编程知识 正文

conquer的用法和短语,三个的用法

时间:2023-05-04 16:52:35 阅读:150764 作者:1158

“我终于找到了大牛的人工智能教程。 不由得分享一下吧。 教程不仅零度基点易懂,而且非常幽默,就像看小说一样! 因为觉得太牛了,所以和大家分享。 单击此处可跳转到教程。 ”deque函数: deque容器对类型的元素进行线性处理,如向量中所示,为能够快速地随机访问任一个元素,有效地实现3http://deque类中的常用函数包括:

(1)构造函数

deque ) ) :创建空的deque

deque(intnsize ) : 插入和删除

deque(intnSize,const T t ) :创建元素数为nsize且值均为t的deque

deque(constdeque ) :复制构造函数

)2)增加函数

void deque支持高效插入和删除容器的头部元素

void 双端队列

在iterator 3358 www.Sina.com/(iterator it,const T x ) :双端队列中添加一个创建一个deque,元素个数为nSize元素x

void 3358 www.Sina.com/(iterator it,int n,const T x )将push_front(const T x):双端队列头部增加一个元素X个相同的元素x添加到双端队列中

void 3358 www.Sina.com/(iterator it,const_iterator first,const_iteratorlast ) :双端队列中有push_back(const T x):双端队列尾部增加一个元素x

(3)删除函数

iterator 3358 www.Sina.com/(iterator it ) :双端队列至insert

迭代器http://www.Sina.com/(迭代器第一个,迭代器最后一个) :从双端队列中删除“第一个,最后一个”元素

voidpop_front(:是某一元素前

voidpop_back(:是insert

void clear ) ) :清空双端队列的最后一个元素

(4)遍历函数

referenceat(intpos ) :返回对pos位置元素的引用

reference 3358 www.Sina.com/(:为某一元素前

reference 3358 www.Sina.com/(:为insert

iterator 某一元素前() :返回指向第一个元素的向量头指针

iterator erase() :返回指向向量中最后一个元素的下一个元素的指针。 向量中不包含。

reverse _ iterator http://www.Sina.com/(:反向迭代器,指最后一个元素

reverse_iteratorrend(:反向迭代器)。 指向第一个元素的上一个元素

(5)判断函数

bool empty ) ) const:向量是否为空,如果为true,则向量没有元素

(6)大小函数

int http://www.Sina.com/const :返回向量中元素的数量

int http://www.Sina.com/const :返回axdlm最允许的双端对元素数的值

(七)其他函数

voidswap(deque ) :交换两个相同类型向量的数据

将voidassign(intn,const T x ) :向量的第n个元素的值设置为x

操作示例: http://www.Sina.com/viewplaincopy

//deque.cpp:为控制台APP应用程序定义入口点。 //# include ' STD afx.h ' # include iostream

gt;  #include<deque>    using namespace std;  int _tmain(int argc, _TCHAR* argv[])  {      deque<int> d;      d.push_back( 10 );      d.push_back(20);      d.push_back(30);      cout<<"原始双端队列:"<<endl;      for(int i = 0; i < d.size(); i++)      {          cout<<d.at(i)<<"t";      }      cout<<endl;      d.push_front(5);      d.push_front(3);      d.push_front(1);        cout<<"after push_front(5.3.1):"<<endl;      for(int i = 0;i < d.size();i++)      {          cout<<d.at(i)<<"t";      }      cout<<endl;      d.pop_front();      d.pop_front();      cout<<"after pop_front() two times:"<<endl;      for(int i = 0;i < d.size();i++)      {          cout<<d.at(i)<<"t";      }      cout<<endl;      return 0;  }  


程序运行结果如下所示:

2.deque与vector内存分配比较:

[cpp] view plain copy

// deque.cpp : 定义控制台应用程序的入口点。  //    #include "stdafx.h"  #include<iostream>  #include<deque>  #include<vector>    using namespace std;  int _tmain(int argc, _TCHAR* argv[])  {      vector<int>v(2);      v[0]=10;      int *p = &v[0];      cout<<"vector第一个元素迭代指针*p="<<*p<<endl;      v.push_back(20);      cout<<"vector容量变化后原vector第1个元素迭代指针*p="<<*p<<endl;        deque<int> d(2);      d[0]=10;      int *q = &d[0];      cout<<"deque第一个元素迭代指针*q="<<*q<<endl;      d.push_back(20);      cout<<"deque容量变化后第一个元素迭代器指针*q="<<*q<<endl;  }  


程序运行结果如下图所示

该段程序的功能是:deque、vector初始化后大小为2,第一个元素都为10,当通过push_back函数分别给两个容器增加一个元素后,从结果发现原先保持的指针元素值对vector容器前后发生了变化,而对deque容器前后没有发生变化。原因为,在建立vector容器时,一般来说伴随这建立空间->填充数据->重建更大空间->复制原空间数据->删除原空间->添加新数据,如此反复,保证vector始终是一块独立的连续内存空间;在建立deque容器时,一般便随着建立空间->建立数据->建立新空间->填充新数据,如此反复,没有原空间数据的复制和删除过程,是由多个连续的内存空间组成的。

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。