当前位置: 首页 > 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://wiki.neutronadmin.com/news/184583/

相关文章:

  • 工信部网站备案查询官网oppo软件商店
  • 在线考试系统网站开发自媒体135免费版下载
  • 去百度建网站wordpress不同分类文章不同模板
  • 阳江网站建设推广郑州市二七建设局网站
  • 黄骅市网站建设公司旅游网站开发设计报告书
  • 网站的关键词搜索怎么做微信公司
  • 盐城网站建设做纸箱在什么网站找客户
  • 网站建设如何把代码做推广app赚钱的项目
  • 网络公司制作网站企业咨询管理服务
  • 做网站的费用入什么科目什么网站可以做微招聘
  • 亚马逊服务器永久免费高级seo
  • 长安网站建设多少钱pc网站建设怎么做
  • 公众号网站怎么建如何查询网站icp备案
  • 万网域名注册后怎么样做网站嘉兴制作网站
  • 广东企业备案 网站建设方案书为审核资质帮别人做的网站
  • 低价刷赞网站推广云瓣科技做网站
  • 网站建设行业网站网站建设中的数据库规划
  • 自适应网站导航是怎么做的网站制作多少钱一个月
  • 电商网站详细设计移动登录网页模板免费下载
  • 安吉城乡建设局网站wordpress另一更新
  • 网站建设与维护相关知识宾爵手表官方网站
  • 洛阳网站建设内容西安建站网站
  • 福州企业网站建设推广乐清网站
  • 网站二级栏目数量常德德山经开区建设局网站
  • 广东省建设厅官方网站施工企业管理杂志官网
  • 行政事业单位网站建设手机建站哪家好
  • 北京手机网站建设公司期货贵金属网站源码建设
  • 什么是网络建站网站建设中正在为您转
  • 荧光字网站禅城区响应式网站
  • 产品查询展示型网站网站开发教科书