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

国外的ui设计思想网站苏州公司建设网站制作

国外的ui设计思想网站,苏州公司建设网站制作,wordpress充值卡,小型企业网站模板下载目录 一、list的使用 二.list的模拟实现 三.总结 一、list的使用 list的底层是双向链表结构#xff0c;双向链表中每个元素存储在互不相关的独立节点中#xff0c;在节点中通过指针指向 其前一个元素和后一个元素。 常见的list的函数的使用 std::listint It {1,…目录 一、list的使用 二.list的模拟实现 三.总结 一、list的使用 list的底层是双向链表结构双向链表中每个元素存储在互不相关的独立节点中在节点中通过指针指向 其前一个元素和后一个元素。 常见的list的函数的使用 std::listint It {1, 2, 3, 4, 5};通过迭代器访问元素 std::listint::iterator it It.begin(); while (it ! It.end()) {std::cout *it std::endl;it; }在链表尾部插入元素 It.push_back(6);在链表头部插入元素 It.push_front(0);删除元素 It.remove(3); // 删除值为3的元素 It.erase(it); // 删除迭代器指向的元素排序链表 It.sort();反转链表 It.reverse(); 但需要注意的是迭代器失效 在list进行插入和删除操作时不仅操作的元素所在的迭代器会失效所有指向链表的迭代器、指针和引用都会失效。因此在进行操作后需要重新获取有效的迭代器。vector的使用也要注意这个问题 二.list的模拟实现 list的迭代器和 string与 vector不太一样没有vector那么天生条件优越。需要单独实现一个类来封装迭代器。 指针可以解引用迭代器的vector类中必须重载operator*() 指针可以通过-访问其所指空间成员迭代器类中必须重载oprator-() 指针可以向后移动迭代器类中必须重载operator()与operator(int) 迭代器需要进行是否相等的比较因此还需要重载operator()与operator!()。 #pragma once #includeiostream #includeassert.h using namespace std;namespace wyb {templateclass Tstruct list_node{T _data;list_nodeT* _prve;list_nodeT* _next;list_node(const T data T()):_data(data), _prve(nullptr), _next(nullptr){}};templateclass Tstruct list_iterator{typedef list_nodeT Node;typedef list_iteratorT self;Node* _node;list_iterator(Node* node):_node(node){}T operator*(){return _node-_data;}self operator(){_node _node-_next;return *this;}self operator--(){_node _node-_prve;return *this;}bool operator!(const self s) const{return _node ! s._node;}bool operator(const self s) const{return _node s._node;}};template class Tclass list{typedef list_nodeT Node;public:typedef list_iteratorT iterator;iterator begin(){return _head-_next;}iterator end(){return _head;}list(){_head new Node;_head-_prve _head;_head-_next _head;_size 0;}void insert(iterator pos, const T x){Node* cur pos._node;Node* prve cur-_prve;Node* newnode new Node(x);newnode-_next cur;cur-_prve newnode;prve-_next newnode;newnode-_prve prve;_size;}void push_back(const T x){insert(end(), x);}void front_back(const T x){insert(begin(), x);}void pop_back(){erase(--end());}void pop_front(){erase(begin());}void erase(iterator pos){assert(pos ! end());Node* prve pos-_node-_prve;Node* next pos-_node-_next;prve-_next next;next-_prve prve;free(pos);_size--;}private:Node* _head;size_t _size;};void test_list(){listint It;It.push_back(1);It.push_back(2);It.push_back(3);It.push_back(4);It.push_back(5);listint::iterator itIt.begin();while (it ! It.end()){cout *it ;it;}cout endl;} } 1、任意位置插入删除时list可以随意插入删除但是vector任意位置的插入删除效率低需要挪动元素尤其是插入时有时候需要异地扩容就需要开辟新空间拷贝元素释放旧空间效率很低 2、访问元素时vector支持随机访问但是list不支持随机访问 3、迭代器的使用上vector可以使用原生指针但是list需要对原生指针进行封装 4、空间利用上vector使用的是一个连续的空间空间利用率高而list使用的是零碎的空间空间利用率低 三.总结 以上关于list的模拟实现有点不全我后期我会补充一些进来。又不懂的地方可以随时联系。 创作不易希望大佬点赞关注。
http://www.dnsts.com.cn/news/123651.html

相关文章:

  • 西地那非是什么药上海网站建设优化
  • 网站建设公司如何推广哈尔滨建设网站公司
  • 网站建设服务费如何做会计分录网站建设与管理是学什么
  • 建设网站公司那里好相关的热搜问题解决方案wordpress 开发 知乎
  • 顺德新网站制作建设网站选多大的空间合适
  • 知名网站开发哪里有php做网站导购模板
  • 旅游网站制作我的网站怎么做
  • 中小微企业建设网站wordpress图片主题 简约
  • 微网站建设计划书2022建站市场
  • 做二手车广告推广哪家网站好下载京东正版官网
  • 沈阳建站模板源码做问卷的网站
  • 中宁网站建设北京模型设计制作
  • 2016个人网站备案怎么做网页宣传
  • 网站导航容易做网站建设评比标准
  • 一 网站开发背景wordpress发布文章页面错误
  • 网站建设方案书阿里云skype在网站上怎么做链接
  • 微网站的图标怎么做做网站排名工具
  • 陕西专业做网站广告制作合同
  • 优化 导航网站用wordpress建站一个人可以吗
  • 百度有没有做游戏下载网站吗想学平面设计哪个网上可以学
  • 做网站通过什么挣钱阳泉推广型网站开发
  • 小企业网站建设怎样可以快速东方网景做网站怎么样
  • 唐山网站建设唐山谷歌推广费用
  • 网站如何实现微crm客户管理系统
  • 网站设计培训班哪家好邯郸网站设计服务平台
  • 网站建设公司官方网站蓝色网站设计
  • 网站建设首页面口碑营销的产品有哪些
  • 简洁大方的电商网站模板运城购物网站开发设计
  • 云服务器怎么架设网站哈尔滨快速建站点击查看
  • 做网站需要技术wordpress资源销售