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

推广网站的图片怎么做wordpress目录权限设置密码

推广网站的图片怎么做,wordpress目录权限设置密码,西宁网站建设排名,wap712c朋友们、伙计们#xff0c;我们又见面了#xff0c;本期来给大家解读一下有关vector的基础用法#xff0c;如果看完之后对你有一定的启发#xff0c;那么请留下你的三连#xff0c;祝大家心想事成#xff01; C 语 言 专 栏#xff1a;C语言#xff1a;从入门到精通 数… 朋友们、伙计们我们又见面了本期来给大家解读一下有关vector的基础用法如果看完之后对你有一定的启发那么请留下你的三连祝大家心想事成 C 语 言 专 栏C语言从入门到精通 数据结构专栏数据结构 个  人  主  页 stackY、 C 专 栏   C Linux 专 栏  Linux ​  目录 1. vector介绍 2. vector使用 2.1vector的定义 2.2vector迭代器 2.3vector空间增长 2.4vector增删查改 2.4.1 迭代器失效 1. vector介绍 vector官方文档参考 类似于数据结构中讲到过的顺序表 vector是表示可变大小数组的序列容器。就像数组一样vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数组一样高效。但是又不像数组它的大小是可以动态改变的而且它的大小会被容器自动处理。本质讲vector使用动态分配数组来存储它的元素。当新元素插入时候这个数组需要被重新分配大小为了增加存储空间。其做法是分配一个新的数组然后将全部元素移到这个数组。就时间而言这是一个相对代价高的任务因为每当一个新的元素加入到容器的时候vector并不会每次都重新分配大小。vector分配空间策略vector会分配一些额外的空间以适应可能的增长因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。但是无论如何重新分配都应该是对数增长的间隔大小以至于在末尾插入一个元素的时候是在常数时间的复杂度完成的。因此vector占用了更多的存储空间为了获得管理存储空间的能力并且以一种有效的方式动态增长。与其它动态序列容器相比deque, list and forward_list vector在访问元素的时候更加高效在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作效率更低。比起list和forward_list统一的迭代器和引用更好 2. vector使用 vector学习时一定要学会查看文档vector官方文档参考vector在实际中非常的重要在实际中我们熟悉常见的接口就可以下面列出了哪些接口是要重点掌握的。 2.1vector的定义 构造函数声明接口说明vector()无参构造vectorsize_type n, const value_type val value_type()构造并初始化n个valvector (const vector x)拷贝构造vector (InputIterator first, InputIterator last)使用迭代器进行初始化构造 在使用vector之前需要包含vector对应的头文件#include vector #include vector//定义测试 void test_vector1() {//1. 无参vectorint v1;//2. n个val构造vectorint v2(10, 0);//3. 使用迭代器区间vectorint v3(v2.begin(), v2.end());//4. 使用其他容器的迭代器区间string str Hello World!;vectorint v4(str.begin(), str.end());//拷贝构造vectorint v5(v2); } 2.2vector迭代器 iterator的使用接口说明begin end获取第一个数据位置的iterator/const_iterator 获取最后一个数据的下一个位置 的iterator/const_iteratorrbegin rend获取最后一个数据位置的reverse_iterator获取第一个数据前一个位置的 reverse_iterator //迭代器 void test_vector2() {vectorint v2(10, 0);for (size_t i 0; i v2.size(); i){//vector也可以使用[]cout v2[i] ;}cout endl;//迭代器的使用//vectorint::iterator it v2.begin();auto it v2.begin();while (it ! v2.end()){cout *it ;it;}cout endl;//范围forfor (auto e : v2){cout e ;}cout endl; }2.3vector空间增长 容量空间接口说明size获取数据个数capacity获取容量大小empty判断是否为空resize改变vector的sizereserve 改变vector的capacity capacity的代码在vs和g下分别运行会发现vs下capacity是按1.5倍增长的g是按2倍增长的。这个问题经常会考察不要固化的认为vector增容都是2倍具体增长多少是根据具体的需求定义的。vs是PJ版本STLg是SGI版本STL。reserve只负责开辟空间如果确定知道需要用多少空间reserve可以缓解vector增容的代价缺陷问题。resize在开空间的同时还会进行初始化影响size。 // 测试vector的默认扩容机制 void TestVectorExpand() {size_t sz;vectorint v;sz v.capacity();cout making v grow:\n;for (int i 0; i 100; i){v.push_back(i);if (sz ! v.capacity()){sz v.capacity();cout capacity changed: sz \n;}} }vs运行结果vs下使用的STL基本是按照1.5倍方式扩容 making foo grow: capacity changed: 1 capacity changed: 2 capacity changed: 3 capacity changed: 4 capacity changed: 6 capacity changed: 9 capacity changed: 13 capacity changed: 19 capacity changed: 28 capacity changed: 42 capacity changed: 63 capacity changed: 94 capacity changed: 141 g运行结果linux下使用的STL基本是按照2倍方式扩容 making foo grow: capacity changed: 1 capacity changed: 2 capacity changed: 4 capacity changed: 8 capacity changed: 16 capacity changed: 32 capacity changed: 64 capacity changed: 128 如果已经确定vector中要存储元素大概个数可以提前将空间设置足够reserve() 就可以避免边插入边扩容导致效率低下的问题。 重点来看一下resize和reserve 如我我们要对一个vector进行初始化那必然先要进行空间的创建然后再进行初始化那么在这里是需要resize还是reserve resize改变的是vector的size而size代表的是有效元素的个数reserve改变的vector的capacity而capacity代表的是有效空间所以要对一个vector进行初始化是需要使用resize的。 //容量 void test_vector3() {vectorint v;//v.reserve(100); // size 0 capacity 100v.resize(100); // size 100 capacity 100//初始化for (size_t i 0; i v.size(); i){v[i] i;}for (auto e : v){cout e ;}cout endl; } 2.4vector增删查改 vector增删查改接口说明push_back尾插pop_back 尾删find查找。注意这个是算法模块实现不是vector的成员接口insert在position之前插入valerase删除position位置的数据swap交换两个vector的数据空间operator[ ] 像数组一样访问 1. 尾插、尾删  void test_vector4() {vectorint v;//尾插v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);for (auto e : v){cout e ;}cout endl;//尾删v.pop_back();v.pop_back();for (auto e : v){cout e ;}cout endl; } 2. 插入insert、删除erase、查找find find算法不属于vector中的接口方便插入和删除 //插入、删除 void test_vector5() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);//头插v.insert(v.begin(), 0);//头删v.erase(v.begin());//在pos位置插入v.insert(v.begin() 2, 30);//删除pos位置v.erase(v.begin() 2);//在pos位置插入n个valv.insert(v.begin() 1, 5, 10);//找到5个10并删除for (size_t i 0; i 5; i){v.erase(find(v.begin(), v.end(), 10));} }   2.4.1 迭代器失效 当使用vector进行insert、erase操作时vector的迭代器都会失效 void test_vector7() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);vectorint::iterator it v.begin();while (it ! v.end()){cout *it ;v.insert(v.begin() 2, 7); //造成迭代器失效it;} }void test_vector8() {vectorint v { 1,2,3,4,5,6,7,8,9,10 };vectorint::iterator it v.begin();//删除偶数while (it ! v.end()){if (*it % 2 0){v.erase(it);}it;} } 同样的string的insert和erase也会导致迭代器失效 void TestString() {string s(hello);auto it s.begin();// 放开之后代码会崩溃因为resize到20会string会进行扩容// 扩容之后it指向之前旧空间已经被释放了该迭代器就失效了// 后序打印时再访问it指向的空间程序就会崩溃//s.resize(20, !);while (it ! s.end()){cout *it;it;}cout endl;it s.begin();while (it ! s.end()){it s.erase(it);// 按照下面方式写运行时程序会崩溃因为erase(it)之后// it位置的迭代器就失效了// s.erase(it);it;} }迭代器失效解决办法在使用前对迭代器重新赋值即可。  3. 清理clear和缩容 shrink_to_fit clear只清理数据不释放空间。 shrink_to_fit将capacity缩到size void test_vector6() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);for (auto e : v){cout e ;}cout endl;cout v.size() endl;cout v.capacity() endl;//清理v.clear();cout v.size() endl;cout v.capacity() endl;//缩容v.shrink_to_fit(); cout v.size() endl;cout v.capacity() endl; } 朋友们、伙计们美好的时光总是短暂的我们本期的的分享就到此结束欲知后事如何请听下回分解~最后看完别忘了留下你们弥足珍贵的三连喔感谢大家的支持
http://www.huolong8.cn/news/184583/

相关文章:

  • cms适合做什么网站广州市白云区建设局网站
  • 柳市最好的网站建设公司做网站教学视频
  • 如何查看一家网站是否有备案网站建设公司有
  • 加快政务网站群建设管理宝塔Linux面板清理建设的网站
  • asp网站开发的实训报告织梦网站版权
  • 云南省建设厅合同网站南通高端网站设计
  • 百度手机网页版seo搜索是什么
  • 企业网站建设公司郑州国家企业信用查询信息系统(全国)
  • 建设局网站管理办法做任务的阅币漫画网站
  • 网站营销定义wordpress用户邮件营销插件
  • 最大招聘网站东平建设局网站
  • 木屋网站建设做网站维护要学些什么·
  • 俄罗斯门户网站深圳下周一居家办公
  • 大连建设局网站如何做好外贸网络营销
  • 淄博网站优化昆明网站建设优化
  • 网站建设所面临的问题上海建设工程咨询网查询
  • 深圳企业网站制作公司查询网站备案 互联网信息
  • 做网站排名推广效果怎么样咸宁网站定制
  • 公司网站上线流程博物馆网站建设说明
  • c 网站购物车怎么做nginx伪静态 wordpress
  • 外贸零售网站建设魔客吧wordpress主题如何安装
  • 阿雷网站建设公司潜江资讯网招聘临时工
  • 专业定制网站设计网页打不开pdf文件怎么办
  • 高端html5网站建设织梦模板做代练去什么网站安全
  • 网络商城网站建设做网商要创建网站吗
  • 网站颜色搭配为什么网站开发需要写php
  • 淄博网站制作高端服务开发一个app软件多少钱
  • 彩票网站开发周期贵阳企业免费建站
  • 发布的手机网站是乱码深圳网站设计公司怎么找
  • 网站建设招聘系统苏州网站建设制作设计