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

三亚网站建设wordpress 数据库

三亚网站建设,wordpress 数据库,深圳画册设计企业,软文广告的案例嗨喽大家好#xff0c;时隔许久阿鑫又给大家带来了新的博客#xff0c;list的模拟实现#xff08;二#xff09;以及_stack_queue#xff0c;下面让我们开始今天的学习吧#xff01; list(二)和_stack_queue 1.list的构造函数 2.设计模式之适配器和迭代器 3.新容器de… 嗨喽大家好时隔许久阿鑫又给大家带来了新的博客list的模拟实现二以及_stack_queue下面让我们开始今天的学习吧 list(二)和_stack_queue 1.list的构造函数 2.设计模式之适配器和迭代器 3.新容器deque 4.优先级队列 5.仿函数 1.list的构造函数 最好加上引用如果不加引用T为list时将it解引用赋值给e时list为自定义类型要耗费大量空间进行拷贝操作所以在利用for语句时我们最好加上引用 //list的默认构造构造出一个头节点 void empty_init() {//利用节点的默认构造生成一个节点//定义该节点为头节点节点对象拥有两个成员变量_head new Node();_head-_next _head;_head-_prev _head; }list(initializer_list T il) {//initializer_list常量数组中有两个指针分别指向数组的开头和结尾empty_init();for (const auto e : il){push_back(e);} }list() {//看一下交换的时候是不是新创建的对象是调用默认构造进行初始化empty_init(); }list(const listT it) {empty_init();for (const auto e :it){push_back(e);} }~list() {clear();delete _head;_head nullptr; }void clear() {auto it begin();while (it ! end()){it erase(it);} } //it1(it3) listT operator(listT it) {std::swap(_head, it._head);return *this; }2.设计模式之适配器和迭代器 using namespace std; namespace ZJ {templateclass T, class Container vectorTclass Stack{public:void push(const T x){_con.push_back(x);}void pop(){//后进先出_con.pop_back();}const T top(){return _con.back();}bool empty(){return _con.empty();}size_t size(){return _con.size();}private :Container _con;};void Test_stack1(){ZJ::Stackint st1;st1.push(1);st1.push(2);st1.push(3);st1.push(4);st1.push(5);int n st1.size();for (int i 0; i n; i){cout st1.top() ;st1.pop();}cout endl;}}3.新容器deque deque的每个对象有四个成员变量每个迭代器中又有四个指针 cur指向当前数据node(是一个二级指针)指向当前数据在中控数组中的位置first和last分别指向buff数组中第一个和最后一个数据,而finish中的node指针指向最后一个buff的最后一个数据的下一个位置 4.优先级队列 底层是一个堆 void Test_priority_queue1() {vectorint v1 { 1,2,3,8,9,7,5,6,4 };priority_queueint q1(v1.begin(), v1.end());//for (const auto e : v1)//{// q1.push(e);////}while (!q1.empty()){cout q1.top() ;q1.pop();}} 堆逻辑上是一个二叉树物理结构上是一个数组 没有引入仿函数时。 namespace ZJ {templateclass T, class Container vectorTclass priority_queue{public:template class InputIteratorpriority_queue(InputIterator first, InputIterator last){while (first ! last){_con.push_back(*first);first;}// 从最后一个非叶子节点开始向下建堆for (int i (_con.size() - 1 - 1) / 2; i 0; i--){adjust_down(i);}}void adjust_up(int child){size_t parent (child - 1) / 2;while (child 0){if (_con[parent] _con[child]){swap(_con[parent], _con[child]);child parent;parent (child - 1) / 2;}else{break;}}}void push(const T x){_con.push_back(x);adjust_up(_con.size() - 1);}void adjust_down(int parent){size_t child parent * 2 1;while (child_con.size()){if (child 1 _con.size() _con[child] _con[child 1]){child child 1;}if (_con[child] _con[parent]){swap(_con[parent], _con[child]);parent child;child parent * 2 1;}else{break;}}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();adjust_down(0);}const T top(){return _con[0];}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;}; }5.1仿函数初识 class Func { public:void operator()(int a 10){while (a--){cout Func调用 endl;}} };有了仿函数之后的优先级队列 namespace ZJ {templateclass Tclass myless{public:bool operator() (const T x, const T y){return x y;}};templateclass Tclass mygreater{public:bool operator() (const T x, const T y){return x y;}};templateclass T, class Container vectorT,class compare mylessTclass priority_queue{public:template class InputIteratorpriority_queue(InputIterator first, InputIterator last){while (first ! last){_con.push_back(*first);first;}// 从最后一个非叶子节点开始向下建堆for (int i (_con.size() - 1 - 1) / 2; i 0; i--){adjust_down(i);}}void adjust_up(int child){compare comfunc;size_t parent (child - 1) / 2;while (child 0){if (comfunc(_con[parent],_con[child])){swap(_con[parent], _con[child]);child parent;parent (child - 1) / 2;}else{break;}}}void push(const T x){_con.push_back(x);adjust_up(_con.size() - 1);}void adjust_down(int parent){compare comfunc;size_t child parent * 2 1;while (child_con.size()){if (child 1 _con.size() comfunc(_con[child] , _con[child 1])){child child 1;}if (comfunc(_con[parent],_con[child])){swap(_con[parent], _con[child]);parent child;child parent * 2 1;}else{break;}}}void pop(){swap(_con[0], _con[_con.size() - 1]);_con.pop_back();adjust_down(0);}const T top(){return _con[0];}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;}; }给出的对创建存储自定义类型的vector和存储自定义类型指针的vector的解释 编译器通过类型信息来确保您不会将非 Date* 类型的指针错误地插入到 a 中。如果您尝试将一个不是 Date* 类型的指针插入到a 中编译器会发出一个错误告诉您类型不匹配。所以当我们创建存储Date*类型的vector时不需要调用Date的构造函数只有在创建Date对象的时候我们才需要调用Date的构造函数。 并且上述程序我们需要注意程序结束时只有局部对象如a数组本身和任何在栈上分配的局部变量的生命周期会结束但由new在堆上分配的对象不会自动被销毁。你需要手动管理这些对象的生命周期。 5.2仿函数用法之自定义类型比较大小 priority_queue() default;//生成默认的构造函数 class Date { public:Date(int year 1900, int month 1, int day 1): _year(year), _month(month), _day(day){}bool operator(const Date d)const{return (_year d._year) ||(_year d._year _month d._month) ||(_year d._year _month d._month _day d._day);}bool operator(const Date d)const{return (_year d._year) ||(_year d._year _month d._month) ||(_year d._year _month d._month _day d._day);}friend ostream operator(ostream _cout, const Date d){_cout d._year - d._month - d._day;return _cout;} private:int _year;int _month;int _day; }; struct PDateLess {bool operator() (Date* p1, Date* p2){return *p1 *p2;} }; struct PDateMore {//小堆bool operator() (Date* p1, Date* p2){return *p1 *p2;} }; void TestPriorityQueue() {// 大堆需要用户在自定义类型中提供的重载ZJ::priority_queueDate*,vectorDate*,PDateMore q1;q1.push(new Date(2018, 10, 29));q1.push(new Date(2018, 10, 28));q1.push(new Date(2018, 10, 30));while(!q1.empty()){cout *q1.top() endl;q1.pop();} 如果要创建小堆需要用户提供的重载//priority_queueDate, vectorDate, greaterDate q2;//q2.push(Date(2018, 10, 29));//q2.push(Date(2018, 10, 28));//q2.push(Date(2018, 10, 30));//cout q2.top() endl; } int main() {TestPriorityQueue();return 0; }好啦今天的内容我们就学习到这里如果大家觉得阿鑫写的不错的话记得留下你的一键三连哦期待我们的下一次相遇
http://www.w-s-a.com/news/561794/

相关文章:

  • 网站你懂我意思正能量免费wordpress菜单底部导航代码
  • 一个主机可以建设多少个网站山东高端网站建设
  • 长沙网站建设搭建网络营销做得好的公司
  • 如何做网站的后台管理石家庄seo关键词排名
  • 给自己公司做个网站山东做外贸网站的公司
  • 张家港网站建设培训江苏省建设工程网站系统
  • html个人网站桂林建站
  • 湛江网站优化快速排名wordpress文章页面宽度
  • 自己建网站怎么弄唯品会一家专门做特卖的网站
  • 做文化传播公司网站做搜狗pc网站点
  • 免费的黄冈网站有哪些平台可以聊天呢要查询一个网站在什么公司做的推广怎么查
  • 凡客建站登录入口网站建设先进部门评选标准
  • 响应式设计 手机网站政务中心建设网站
  • 如何做卖衣服的网站网站登录接口怎么做
  • 网站源码下载了属于侵权吗499全包网站建设
  • 怎样创建网站信息平台网络推广官网首页
  • 网站建设的课程网站 逻辑结构
  • 开通企业网站搬瓦工暗转wordpress
  • 成都网站建设有名的公司怎么做出有品牌感的网站
  • 中国网站的建设淘宝数据网站开发
  • 深圳建站网站模板wordpress 文章最长
  • 服务器建立网站建网站做seo
  • 帮人做彩票网站支付接口网上请人做软件的网站
  • 万全网站建设wl17581做旅游广告在哪个网站做效果好
  • 钢城网站建设安徽省住房和城乡建设厅网站
  • 协会网站建设方案大良营销网站建设好么
  • 网站引导页一般是什么格式网页设计师的应聘岗位
  • 构建网站空间网站开发与维护招聘
  • 网站建设的网页怎么做番禺网站开发哪家强
  • 网站开发是程序员吗百度网盘下载电脑版官方下载