当前位置: 首页 > news >正文

定制网站建设加盟代理住建部网站建设部

定制网站建设加盟代理,住建部网站建设部,百度电脑网页版,沈阳哪家网站好一、基本概念 vector教据结构和数组非常相似,也称为单端数组#xff0c;但是数组是静态空间#xff0c;而vector可以动态扩展。 动态的扩展流程如下#xff1a; 动态扩展并不是在原空间之后续接新空间#xff0c;而是找更大的广存空间#xff0c;然后将原数据拷贝新空间但是数组是静态空间而vector可以动态扩展。 动态的扩展流程如下 动态扩展并不是在原空间之后续接新空间而是找更大的广存空间然后将原数据拷贝新空间释放原空间。 vector容器的迭代器是支持随机访问的迭代器也就是说可以随机访问容器内的任何一个位置的数据。 二、vector的构造函数 vector v; 采用模板实现类实现默认构造函效。 vector(v.begin(), v.end( )) 将v[begin(), end())区间中的元素拷贝给本身。 vector(n,elem) ; 构造函数将n个elem拷贝给本身。 vector( const vector vec); 拷贝构造函数。 具体的实现方法如下所示 //默认构造方式vectorint v;for (int i 0; i 4; i){v.push_back(i);}VectorPrint(v);// 通过区间的方式进行构造vectorintv1(v.begin(), v.end());VectorPrint(v1);//通过n个elem的方式构造vectorintv2(2, 100);VectorPrint(v2);//通过拷贝构造的方式进行传递vectorintv3(v2);VectorPrint(v3);三、vector赋值操作 当我们构建好vector之后我们可以对vector进行赋值操作具体的样例如下 vector operator( const vector vec); 重载等号操作符。 assign(beg, end) ;将[beg, end)区间中的数据拷贝赋值给本身。 assign(nelen); 将n个elem拷贝赋值给本身。 具体的实现细节如下 //赋值操作:重载等号vectorintv1;v1 v;VectorPrint(v1);//赋值操作:assign操作1vectorintv2;v2.assign(v1.begin(), v1.end());VectorPrint(v2);//赋值操作:assign操作2vectorintv3;v3.assign(2, 100);VectorPrint(v3);四、vector容量和大小 具体的函数接口如下 empty( ); 判断容器是否为空 capacity(); 容器的容量 size(); 返回容器中元素的个数 resize( int num); 重新指定容器的长度为num若容器变长则以默认值0填充新位置。如果容器变短则末尾超出容器长度的元素被删除。 resize( int nun elem); 重新指定容器的长度为num若容器变长则以elem值填充新位置。如果容器变短则末尾超出容器长度的元素被删除 具体的实现样例如下 vectorint v;for (int i 0; i 10; i){v.push_back(i);}if (v.empty()){cout 容器为空 endl;}else{cout 容器不为空 endl;cout 容器容量为 v.capacity() endl; cout 容器的大小为 v.size() endl;} //重新指定容器大小多出的位置用默认值0填充v.resize(10);//重新指定容器大小多出的位置用设置值10填充v.resize(15, 10);//重新指定容器大小,超出的部分会被删掉v.resize(2);五、vector插入和删除 具体的实现接口如下 push_back(ele);尾部插入元素ele pop_back(删除最后一个元素 insert (const_iterator posele);迭代器指向位pos插入元素ele insert( const_iterator posint count,ele);迭代器指向位置pos插入count个元素ele erase(const_iterator pos);删除迭代器指向的元素 erase(const_iterator startconst_iterator end);删除迭代器从start到end之间的元素 clear();删除容器中所有元素 具体样例如下: vectorint v;//尾插法插入数据v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);vectorPrint(v);//尾部删除法,一次删一个v.pop_back();vectorPrint(v);//插入,第一个参数是迭代器v.insert(v.begin(), 100);vectorPrint(v);//插入,第一个参数是迭代器,插入两个10v.insert(v.begin(), 2, 10);vectorPrint(v);//删除v.erase(v.begin()3);vectorPrint(v);//删除一个区间v.erase(v.begin() 3, v.end()-2);vectorPrint(v);//清空v.clear();vectorPrint(v);输出结果为 1 2 3 4 5 1 2 3 4 100 1 2 3 4 10 10 100 1 2 3 4 10 10 100 2 3 4 10 10 100 3 4 六、vector的数据存取 具体的实现接口如下 at( int idx); 返回索引idx所指的数据 operator[]: 返回索引idx所指的数据 front( ); 返回容器中第一个数据元素 back();返回容器中最后一个数据元素 具体实现样例如下 for (int i 0; i v.size(); i){//使用at接口进行输出cout v.at(i) ;//使用索引值进行输出cout v[i] ;//获取第一个元素cout v.front() endl;//获取最后一个元素cout v.back() endl;}七、vector互换容器 实现两个容器内元素进行互换。 函数接口如下 swap(vec); 将vec与本身的元素互换 具体的实现样例如下 void PrintVector(vectorint v) {for (vectorint::iterator it v.begin(); it v.end(); it){cout *it ;} cout endl; }vectorint v;vectorint v1;for (int i 0; i 3; i){v.push_back(i);v1.push_back(i10);}PrintVector(v);PrintVector(v1);v.swap(v1);PrintVector(v);PrintVector(v1);以上接口的实用技巧 vectorint v;for (int i 0; i 3000; i){v.push_back(i);} cout v.capacity() 容量endl;cout v.size() 大小endl;//当我们重置容器的大小之后1v.resize(2);cout v.capacity() 容量endl;cout v.size() 大小endl;有以上的代码代码的输入为 3597容量 3000大小 3597容量 2大小我们可以看出当最先的容器申请了3597大小的容量但是当我们重置容器大小之后虽然容器的大小变小了但是容量并没有变化。这就造成了资源的浪费。我们可以通过以下的操作来收缩容器的容量 vectorint(v).swap(v);对以上操作进行解释vector(v)操作是创建了一个新的对象该对象为匿名对象这个匿名对象是按照v的大小来初始化初始化之后调用swap操作之后将指向v的指针指向了该匿名对象匿名对象指针指向了v当匿名对象实用完成之后编译器会将匿名对象指针指向的内存进行回收。通过这样的一个操作达到了收缩容量的作用。 八、vector的预留空间 该操作可以减少vector在动态扩展容量时的扩展次数具体的接口说明如下 reserve(int len); 容器预留len个元素长度。预留位置不初始化元素不可访问。 具体的实现样例如下 vectorint v;//提前开辟够量的空间v.reserve(199999);int num 0;int *p NULL;for (int i 0; i 199999; i){v.push_back(i);if (p ! v[0]){p v[0];num;}}cout num endl; }当随着容器内需要存放的数据不断的增大容器需要不断的申请内存空间这样的操作需要很大的工程所以为了避免这样重复的操作所以我们需要实现申请一块已经足够的空间。
http://www.w-s-a.com/news/732896/

相关文章:

  • 提供o2o网站建设打扑克网站推广软件
  • 制作简单门户网站步骤中国建设局网站查询
  • 漳州专业网站建设网站建设的面试要求
  • 有哪些网站是封面型汕头网站上排名
  • 自动优化网站软件没有了做的新网站做百度推广怎么弄
  • 高陵县建设局网站商标查询网站
  • 郑州建设网站哪家好东莞网络公司排行榜
  • 成都网站开发费用做行程的网站
  • 做地铁建设的公司网站手机网站首页布局设计
  • 福建亨立建设集团有限公司网站搜狗网页游戏大厅
  • 设计网站musil访问量大的网站选择多少流量的服务器何时
  • 公司网站包括哪些内容新网站怎样做外链
  • 淘宝宝贝链接怎么做相关网站广州好蜘蛛网站建设
  • 长春网站制作网页博山区住房和城乡建设局网站
  • 云南大学网站建设解析到网站怎样做
  • 网站维护的要求包括锦溪网站建设
  • 金站网.营销型网站学校安全教育网站建设
  • 临沂市建设局网站公示军事新闻头条2023
  • 购物网网站建设lamp 做网站
  • 做网站网站庄家html5网站开发技术
  • 无锡门户网站制作电话广告设计公司的未来
  • 白云区专业网站建设网页设计模拟试题答案
  • 毕业设计网站代做多少钱制作旅游网站设计概述
  • 网站开发维护运维无人在线电视剧免费观看
  • 电子商务网站建设开题报告展馆网站建设
  • 门户网站建设的背景和意义手机网站前
  • 国内免费视频素材无水印素材网站国家最新消息
  • 襄阳seo站内优化学做网站论坛教程
  • 文明网站建设情况报告wordpress伪静态配置
  • 牙科网站模板个人微信网站建设