安徽新华电脑专修学院_安徽电脑培训_安徽电脑培训学校_合肥电脑培训

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > Dotmars 實例之:容器、迭代器與算法框架

Dotmars 實例之:容器、迭代器與算法框架
2010-01-13 22:50:44  作者:  來源:
這幾天 Mr. Bright 老是不放新版本,圈子里太冷清了,我來發篇程序湊個數。

這是一個類似 C++ STL 的容器、迭代器和算法框架,迭代器的設計參考了 C++ boost 庫中的"new-style" 迭代器,把迭代器的遍歷和讀寫操作分開,內置數組處理參考了 qiezi 的文章: 仿STL的vector,寫了一組array操作方法。容器方法的命令沒有遵循 STL 的風格,而是采用 .Net 范型容器的名稱。

借助于 D 威力強大的模板和模板混入,代碼雖然大量用到了模板,但是十分地簡短易讀。

目前僅僅實現的部分包括:
  • 雙向列表容器
  • find & copy 算法(沒有模板特化的優化)
  • 內置一維數組的迭代器
  • 一個AOP模式的容器操作符重載
廢話少說,看看范例程序展現的威力:

D 代碼
 
  1. module samples.base.collections;
  2.  
  3. import dotmars.base.iterator;
  4. import dotmars.base.collection.list;
  5. import dotmars.base.collection.array;
  6. import dotmars.base.algorithms;
  7. import dotmars.io.console;
  8.  
  9. void main()
  10. {
  11. alias List!(int) MyList;
  12.  
  13. auto list = new MyList;
  14.  
  15. list ~= 1; // this is equal to list.addList(1);
  16. list ~= 2;
  17. list ~= 3;
  18. list ~= 4;
  19. list ~= 5;
  20. list ~= 6;
  21. list.addFirst(7);
  22.  
  23. //現在序列為: 7,1,2,3,4,5,6
  24.  
  25. MyList.Iterator it = list.begin();
  26. ++it;
  27. ++it;
  28.  
  29. //刪除2, it 指向3
  30. it = list.remove(it);
  31.  
  32. //現在序列為: 7,2,3,4,5,6
  33.  
  34. list.addBefore(it, 2); //在3之前插入2,it 指向 3
  35.  
  36.  
  37. int[] array;
  38. array.addLast(8); //內置數組也能享受到同樣的 addLast 成員函數
  39. array.addLast(9);
  40.  
  41. // 內置數組也可以用迭代器訪問
  42. list.addRangeBefore(it, array.begin(), array.end()); //在3之前插入array的內容,即 8,9
  43.  
  44. //使用 foreach 語句遍歷 list
  45. foreach(int i; list)
  46. Console.print("{0}, ", i);
  47.  
  48. Console.newLine();
  49.  
  50. //與 STL 類似,通過內部的迭代器反向遍歷 list
  51. for(MyList.ReverseIterator ri = list.rbegin(); ri != list.rend(); ++ri)
  52. Console.print("{0}, ", ri.current);
  53.  
  54. Console.newLine();
  55.  
  56. //調用通用算法
  57. MyList.Iterator pos = find(list.begin(), list.end(), 5);
  58.  
  59. if(pos != list.end())
  60. Console.printLine("Pattern found: {0}", pos.current);
  61.  
  62. list.clear();
  63. }

運行結果:
  1. 7, 1, 2, 9, 8, 3, 4, 5, 6,
  2. 6, 5, 4, 3, 8, 9, 2, 1, 7,
  3. Pattern found: 5


最新版程序可在 dotmars.googlecode.com/svn/trunk/samples/base/collections.d 處下載。


安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 华药药业集团|华药修医师|修医师浸膏|河南华药药业有限公司 | 数造云-面向3D打印的云制造平台 数控落地镗铣床_数控刨台式镗铣床_数控龙门加工中心-青岛辉腾机械设备有限公司 | 云德律师事务所_全国律师服务咨询服务企业 | 柱塞泥浆泵|压滤机专用泵|陶瓷泥浆泵_咸阳华星泵业有限公司 | 尼日利亚SONCAP认证_沙特SABER认证_摩洛哥COC认证-诺帝检测技术(上海)有限公司 | 宁波雷豹机电科技有限公司|雷豹冷风机|雷豹工业大风扇|MFC18000|MFC16000|MFC6000|EF3622|EF4222|EF4822|移动工业蒸发式冷风机空气冷却器|大型工业空调扇|雷豹移动式工业大风扇|雷豹大风扇|生产厂家|公司官网 | 橡胶管_高压橡胶管_高压胶管_铠装高压胶管-河北远大新特橡塑有限公司 | 自装卸(挂桶)车|钩臂垃圾车|压缩垃圾车|密封自卸车|环卫垃圾车|餐厨车泔水车湖北程力专用车厂家 自建房外墙砖|地砖|墙砖,农村|别墅瓷砖-佛山燊陶丰 | 山东优科机械设备有限公司,养鸡设备,湿帘设备,通风降温加湿设备,山东养鸡设备,山东湿帘设备 | 宣城眼科医院-全飞秒激光治近视-专注眼科二十二年 | 锦州龙威机械有限公司官网 ,锦州医药包装机,包装机,锦州包装机械,小袋颗粒装盒生产线,颗粒装盒生产线,软双铝装盒线,伺服颗粒 | 深圳-广州-惠州-东莞-重型货架-悬臂-轻中型货架-深圳市诺普泰仓储设备有限公司 | 凿岩机|操车设备|爬车机|三环链|伞钻|伞型钻机|中心回转抓岩机|往复式给煤机|滚轮罐耳|吊桶|钩头-济宁卓力工矿设备有限公司 | 气动量仪厂家-郑州华峰仪器有限公司 | 科衣洛定制衣柜,书柜,厨柜,衣帽间,电视柜,酒柜,餐厅柜,门厅柜,鞋柜——科衣洛全屋定制官网 | 衢州网站建设_网络公司_做网站_网站制作_网页设计-优骆网络 | 水分测定仪_微量水分测定仪_高低温试验箱_昆山鹭工精密仪器有限公司 | 上海增晨贸易有限公司-PC端 | 食用油灌装机-油类食用油灌装设备-液体灌装机_青州市惠联灌装机械 | 微型直流减速电机-直流永磁电机-直流永磁电机厂家-微型直流减速电机定制-东莞市鑫辉传动科技有限公司 - 鑫辉传动科技 | 金刚石砂轮_树脂砂轮片厂家_CBN砂轮批发-华昱金刚石工具 | 山东金起起重机械有限公司[官网]-金桥银路悬臂吊,金起龙门吊,山东金起起重行吊,单梁起重机 | 企业信息安全整体解决方案提供商-上海华垸信息技术有限公司 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 南昌今工科技有限公司| 土工布厂家,山东土工布厂家_价格低-山东莱芜「中德利」 | 远红外桑拿房-江苏侨达健康科技有限公司 | 履带吊出租_大型吊装设备_履带式起重机-山东腾飞吊装工程有限公司 | 企业资质代办-代理全国工商注册公司_公司转让_增值电信业务许可证新办续期-大通天成科技[gw] | 锯轨机|气动锯轨机|内燃锯轨机|电动钢轨钻孔机|内燃钢轨钻孔机-山东卓力铁路设备有限公司 | 升降炉|推板炉|创卓炉业| 柱塞泥浆泵|压滤机专用泵|陶瓷泥浆泵_咸阳华星泵业有限公司 | 消防服_防化服_灭火防护服_消防装备生产厂家-泰州市华通消防装备厂有限公司 | 上海企业团建|上海团建|上海团建活动|上海拓展培训|上海拓展训练|傲朗企业管理顾问(上海)有限公司 | 河南反渗透设备,河南纯净水设备,河南软化水设备,郑州EDI超纯水设备,郑州水处理设备厂家_河南江宇环保科技有限公司 | 模温机_厂家_现货供应-卡塞尔机械(浙江)有限公司 | 洛阳牡丹瓷工艺品生产厂家-特色旅游纪念品礼品定制网! | 水处理设备_纯净水设备_软化水设备_反渗透水处理设备「陕西甘肃青海宁夏新疆」认准海川环保 | 合肥发斯特精密塑模有限公司专业精密磨具,注塑模具,精密注塑机械零件(加工制造|生产|销售|厂家) 浩通集团 国际货运 物贸一体化 中非经贸 | 挖掘机|小型挖掘机|挖掘机抓木机|轮式挖掘机|宝鼎挖掘机-宝鼎液压机械公司厂家直销 | 消泡剂厂家-水处理消泡剂-有机硅消泡剂-广东广州多美多消泡剂厂家 |