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

个人响应式网站建设为什么不要做外包员工

个人响应式网站建设,为什么不要做外包员工,旅游o2o平台有哪些,网站 备案 查询文本旨在对 C 的容器 vector 进行肤浅的分析。 文章目录 Ⅰ、vector 的指定元素删除代码结果与分析 Ⅱ、vector 在新增元素后再删除指定元素代码结果与分析 Ⅲ、vector 在特定条件下新增元素代码结果与分析 参考文献 Ⅰ、vector 的指定元素删除 代码 #include iostream 的容器 vector 进行肤浅的分析。 文章目录 Ⅰ、vector 的指定元素删除代码结果与分析 Ⅱ、vector 在新增元素后再删除指定元素代码结果与分析 Ⅲ、vector 在特定条件下新增元素代码结果与分析 参考文献 Ⅰ、vector 的指定元素删除 代码 #include iostream #include vectorusing namespace std;int main() {std::vectorint v {8, 5, 6, 2, 4, 7};for (auto i v.begin(); i ! v.end();) {cout i.base() v.begin().base() endl;if (*i 2) {i v.erase(i);} else {i;}}cout size : v.size() endl;for (auto j v.begin(); j ! v.end(); j) {cout (*j) endl;} } 结果与分析 先说明一下 vector.erase() 就是动态数组的指定位置的删除其返回值为指向下一个元素( 或 end() ) 的迭代器。 而关于迭代器需要知道的点为 迭代器不是指针是类模板表现的 像 指针。他只是 模拟了指针的一些功能通过 重载了指针的一些操作符-,*, --等封装了指针是一个“可遍历STL Standard Template Library容器内全部或部分元素”的对象 本质是封装了原生指针是指针概念的一种提升lift提供了比指针更高级的行为相当于一种智能指针他可以根据不同类型的数据结构来实现不同的–等操作迭代器返回的是 对象引用而不是对象的值所以cout只能输出迭代器使用 *取值后的值而不能直接输出其自身。在设计模式中有一种模式叫 迭代器模式简单来说就是提供一种方法在不需要暴露某个容器的内部表现形式情况下使之能依次访问该容器中的各个元素这种设计思维在STL中得到了广泛的应用是STL的关键所在通过 迭代器容器和算法可以有机的粘合在一起只要对算法给予不同的迭代器就可以对不同容器进行相同的操作。 这也就是下面 vector v 的首地址为72b0每次进行 i 其基地址就加了 4 一个 int 的字节量。而在删除了 元素 2 之后迭代器的值仍然为 72bc但是在删除之后这个值志向了元素 4。完美的解释了代码。那么问题的出现请看第二节。 Ⅱ、vector 在新增元素后再删除指定元素 代码 #include iostream #include vectorusing namespace std;int main() {std::vectorint v {8, 5, 6, 2, 4, 7};for (auto i v.begin(); i ! v.end();) {// cout i.base() v.begin().base() endl;if (*i 8) {v.push_back(88);i v.erase(i);} else {i;}}cout size : v.size() endl;for (auto j v.begin(); j ! v.end(); j) {cout (*j) endl;}结果与分析 此时在添加了一个新的元素后再进行删除操作会发生段错误。而且为什么会有两个88。这就是我遇见的问题所在。虽然用 int vector 和 打印地址的方式可以很快地发现问题。但我面对的是 vectorexpr *呀。。。这么来看我好想确实有苦说不出阿。没办法是这样的唉。 而且一般来说也没人会打印迭代器的基地址。虽然打印了问题就能一目了然了但我是煞笔 此时为什么会有两个88而且元素 5 去哪了。这就是问题的所在了。但是答案其实就在 vector 的定义和名称中动态数组 。最后答案的揭晓在第三节。 Ⅲ、vector 在特定条件下新增元素 代码 #include iostream #include vectorusing namespace std;int main() {std::vectorint v {8, 5, 6, 2, 4, 7};for (auto i v.begin(); i ! v.end();) {cout i.base() v.begin().base() endl;if (*i 8) {v.push_back(88); i;} else {i;}}cout size : v.size() endl;for (auto j v.begin(); j ! v.end(); j) {cout (*j) endl;}结果与分析 最开始 v 的首地址为b2b0但是在添加了一个元素之后其首地址发送了改变aka 内存发现了一片新的区域来更合适的存储这个数组从而动态地发生了改变。但是此时我们设定的迭代器并未改变。可以看出在进行了 275 次自加操作后迭代器才完成了对于新数组的访问。 结尾处 的来两个88也很好解释了在最开始的 元素8 处向数组中添加了一个 88。从而导致了数组 v的内存地址发生了改变。在经历了漫长的自加操作后迭代器 i 又找到了一个元素 8就又添加了一个新的元素 88。 至此问题结束数组动态地删除指定元素的模板就是第一节的代码不要在删除的过程中添加新的元素反之亦然。希望可以帮到你wish u all the best. 参考文献 iterator迭代器和指针的区别stl_vector.h
http://www.hkea.cn/news/14383239/

相关文章:

  • 山西 网站制作iis默认网站停止
  • 宁波建设工程报名网站福州网站备案
  • 做网站 excel微营销
  • 如何解决网站兼容长页网站
  • 备案网站名称有什么用聊城网站建设有限公司
  • 网站标题写什么作用网站建设维护岗位
  • 河南省级住房城乡建设主管部门网站专业网站优化方案
  • 深圳广东网站建设套餐郑州集团网站建设哪家好
  • 广东营销型网站建设多少钱大型门户网站建设包括哪些方面
  • 温岭市溪建设局网站教育类网站配色
  • 单位网站建设要多少钱腾讯企业邮箱手机登录入口官网
  • 网站建设与维护要用到代码吗深圳网站(建设信科网络)
  • 网站如何识别移动端学会网站建设总结
  • 娱乐网站设计SEO营销自己的网站
  • 怎么建设vip电影网站建筑模板木板
  • 网和网站的区别网站域名怎么过户
  • 做网站的销售团队南沙网站建设公司哪家好
  • 佛山网站建设骏域wordpress异步加载数据
  • 传播易网站开发方案app会替代网站吗
  • 在线建站网页制作网站建设平台百度关键词怎么设置
  • 免费单页网站在线制作织金网站建设
  • 北京市建筑网站南昌寻南昌网站设计
  • 首钢建设二建设公司网站免费asp地方门户网站系统
  • 要学做游戏上什么网站学好网站建设 全包
  • 嘉兴网站定制如何在公司网站上添加内容
  • gzip压缩网站网站关键词设定
  • 企业做网站天津德米萨erp
  • 商务型企业网站建设网页图片不能另存为怎么办
  • 做拼多多网站免费课程免费wordpress主题推荐
  • 国际网站哪里做杭州市做外贸网站的公司