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

广东网站建设找哪家百度网站优化培训

广东网站建设找哪家,百度网站优化培训,网站关键词优化方案分为几个步骤,网站seo软件点击蓝字关注我们一、vector的介绍说的简单点#xff1a;vector是可以动态增长的数组容器vector是表示可变大小数组的序列容器。就像数组一样#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问#xff0c;和数组一样高效。… 点击蓝字关注我们一、vector的介绍说的简单点vector是可以动态增长的数组容器vector是表示可变大小数组的序列容器。就像数组一样vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数组一样高效。本质讲vector使用动态分配数组来存储它的元素。当新元素插入时候这个数组需要被重新分配大小为了增加存储空间。vector分配空间策略vector会分配一些额外的空间以适应可能的增长因为存储空间比实际需要的存储空间更大。。因此vector占用了更多的存储空间为了获得管理存储空间的能力并且以一种有效的方式动态增长。与其它动态序列容器相比deques, lists and forward_lists vector在访问元素的时候更加高效在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作效率更低。比起lists和forward_lists统一的迭代器和引用更好。二、vector的使用1、vector构造函数void test1() {vectorint v1;//无参的构造用的最多vectorint v2(10,1);//用10个1来初始化vectorint v3(v2.begin(),v2.end());//用一段迭代器区间去初始化vectorint v4(v3);//拷贝构造string s(hello);vectorchar v5(s.begin(), s.end());//不同STL的迭代器区间也可以初始化 }结果展示打开监视窗口观察确实初始化好了问题对于下面这种情况是不是差不多呢能不能相互替代呢string s; 和 vectorchar v;不行的因为string末尾带着\0而且string提供了一些专门的字符串相关的接口函数比如operatorc_strfind等等函数2、迭代器的使用//vector中如何遍历 void test2() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);//下标[]遍历for (size_t i 0; i v.size(); i){v[i] 1;cout v[i] ;}cout endl;//迭代器vectorint::iterator itv.begin();while (it ! v.end()){cout *it ;it;}cout endl;//反向迭代器vectorint::reverse_iterator rit v.rbegin();while (rit ! v.rend()){cout *rit ;rit;}//范围forfor (auto e : v){cout e ;}cout endl; }3、空间增长问题void test3() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);cout v.size() endl;cout v.capacity() endl;cout v.empty() endl;cout endl;v.reserve(100);//改变capacitycout v.size() endl;cout v.capacity() endl;cout v.empty() endl;cout endl;v.resize(10,1);//改变size默认给上缺省值0,它可以 扩容初始化 或者 删除数据cout v.size() endl;cout v.capacity() endl;cout v.empty() endl;cout endl;v.resize(2);cout v.size() endl;cout v.capacity() endl;cout v.empty() endl;cout endl; }结果展示总结capacity的代码在vs和g下分别运行会发现vs下capacity是按1.5倍增长的g是按2倍增长的。这个问题经常会考察不要固化的认为顺序表增容都是2倍具体增长多少是根据具体的需求定义的。vs是PJ版本STLg是SGI版本STL。reserve只负责开辟空间如果确定知道需要用多少空间reserve可以缓解vector增容的代价缺陷问题。resize在开空间的同时还会进行初始化影响size。4、增删查改问题void test4() { vectorint v; //push_back尾插v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);//find查找 vectorint::iterator ret find(v.begin(), v.end(),3); auto ret1 find(v.begin(), v.end(), 3); //可以用auto替换 if (ret ! v.end()){ cout 找到了 endl;}v.insert(ret, 100); for (auto e : v){ cout e ;}vectorint::iterator pos find(v.begin(), v.end(), 1); if (pos ! v.end())//判断数据是否合法{ //erase删除v.erase(pos);} cout endl; }结果演示operator[ ] 和范围for是vector中常用的遍历手段// vector使用这两种遍历方式是比较便捷的。 #include iostream #include vector using namespace std; int main() { int a[] { 1, 2, 3, 4 }; vectorint v(a, a sizeof(a) / sizeof(int));// 通过[]读写第0个位置。v[0] 10; cout v[0] endl;// 通过[i]的方式遍历vector for (size_t i 0; i v.size(); i) cout v[i] ; cout endl;vectorint swapv;swapv.swap(v); cout v data:; for (size_t i 0; i v.size(); i) cout v[i] ; cout endl;cout swapv data:; for (size_t i 0; i swapv.size(); i) cout swapv[i] ; cout endl;// C11支持的新式范围for遍历 for (auto x : v) cout x ; cout endl; return 0; }vector是支持迭代器的还可以用范围for对vector进行遍历支持迭代器就支持范围for因为在编译时编译器会自动将范围for替换为迭代器遍历的形式。*声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。戳“阅读原文”我们一起进步
http://www.pierceye.com/news/162841/

相关文章:

  • 笑话小网站模板html网站制作标准
  • 大连网站建设哪家专业图片识别搜索引擎
  • 营销网站制作企业邓州市建设局网站
  • 如何从客户网站开发客户请解释网站开发的主要流程.
  • 做网站的价格 外贸最好科技广州网站建设
  • 烟台开发区网站做网站诊断步骤
  • 成都网站建设哪家技术好关于做网站的搞笑段子
  • 网站的设计制作流程计算机网站开发要考什么证
  • 个人域名 公司网站百度推广和网站建设
  • 哪里有做网站服务抖音开放平台是什么
  • 公司网站上传不了图片建设网站条件
  • 精美公司网站源码婚礼策划网站设计
  • 线上设计师网站网络维护是什么意思
  • 培训网站建设阿里云如何建设网站
  • 手机网站列表模板做一钓鱼网站吗
  • 太原网站建设方案策划请问有重庆有做网站吗
  • 网站备案购买语音网站怎么做
  • ftp上传文件到网站深圳成品网站超市
  • 网站开发时app打开很慢建设网站还要云服务器吗
  • 网站设计方案应该怎么做网站自适应开发
  • 徐州手机网站设计青龙县建设局网站
  • 罗湖网站建设费用帮忙做文档的网站
  • 如何在720云网站做全景视频域名注册网站查询工具
  • 网站定制开发流程和功能wordpress怎么看访问
  • 浙江省互联网建设网站python开发手机网站开发
  • 做网站需要多少钱一年动漫制作技术是学什么
  • 刘洋网站建设 够完美保卫处网站建设
  • 个人怎么申请营业执照北京朝阳区优化
  • 免费的舆情网站不用下载直接打开江西城乡建设网站
  • 那些网站是做金融行业网站主目录权限配置