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

网站下载免费的视频软件网站制作合同注意事项

网站下载免费的视频软件,网站制作合同注意事项,知名的传媒行业网站开发,wordpress前端后端意图#xff1a;提供一种方法顺序访问一个聚合对象中的各个元素#xff0c;而又不需要暴露该对象的内部表示。 上下文#xff1a;集合对象内部结构常常变化各异。对于这些集合对象#xff0c;能否在不暴露其内部结构的同时#xff0c;让外部Client透明地访问其中包含的元素… 意图提供一种方法顺序访问一个聚合对象中的各个元素而又不需要暴露该对象的内部表示。 上下文集合对象内部结构常常变化各异。对于这些集合对象能否在不暴露其内部结构的同时让外部Client透明地访问其中包含的元素同时让这种“透明遍历”也为“同一种算法在多种集合对象上进行操作”提供可能 UML Iterator定义访问和遍历元素的接口.NET中定义了标准的IEnumrator接口。ConcreteIterator实现Iterator接口同时在对Aggregate遍历时跟踪当前的位置。Aggregate定义创建相应Iterator对象的接口.NET中定义了标准的IEnumrable接口。ConcreteAggregate实现创建相应Iterator对象的接口该操作返回一个适当的ConcreteIterator实例。 注意.NET中的foreach关键字在编译时会自动创建迭代器对象并使用该对象对集合进行遍历。.NET中的yield return关键字使得定义迭代器对象更加容易。 代码 #include iostream #include list #include array #include vector using namespace std;//Iterator迭代器抽象类 class Iterator { public:virtual void* First() 0;virtual void* Next() 0;virtual bool IsDone() 0;virtual void* CurrentItem() 0; };//Aggregate聚集抽象类 class Aggregate { public:virtual Iterator *CreateIterator() 0; };//ConcreteAggregate具体聚集类 继承Aggregate class ConcreteAggregate:public Aggregate { public:vectorvoid* items;// Aggregate interface public:Iterator *CreateIterator();int getCount() const;//既可以作为左值也可以作为又值void** operator[](unsigned int index){if(items.size() index){items.resize(index1);}return items[index];} };class ConcreteIterator:public Iterator { public:ConcreteAggregate *ca;int current;ConcreteIterator(ConcreteAggregate *c):ca(c){this-current 0;}virtual void* First();virtual void* Next();virtual bool IsDone();virtual void* CurrentItem(); };Iterator *ConcreteAggregate::CreateIterator() {return new ConcreteIterator(this); }int ConcreteAggregate::getCount() const {return items.size(); }void *ConcreteIterator::First() {return *(*ca)[0]; }void *ConcreteIterator::Next() {if(current ca-getCount()){current;}if(current ca-getCount()){return *(*ca)[current];}return nullptr; }bool ConcreteIterator::IsDone() {return current ca-getCount()?true:false; }void *ConcreteIterator::CurrentItem() {return *(*ca)[current]; }class ConcreteIteratorDesc:public Iterator { public:ConcreteAggregate *ca;int current;ConcreteIteratorDesc(ConcreteAggregate *c):ca(c){this-current c-getCount() - 1;}virtual void* First();virtual void* Next();virtual bool IsDone();virtual void* CurrentItem(); }; void *ConcreteIteratorDesc::First() {if(ca-getCount() 0){return nullptr;}return *(*ca)[ca-getCount() - 1]; }void *ConcreteIteratorDesc::Next() {if(current 0){current--;}if(current 0){return *(*ca)[current];}return nullptr; }bool ConcreteIteratorDesc::IsDone() {return current 0?true:false; } void *ConcreteIteratorDesc::CurrentItem() {return *(*ca)[current]; } int main() {ConcreteAggregate ca;*(ca[0]) (void*)5;*ca[1] (void*)10;*ca[2] (void*)15;*ca[3] (void*)20; // cout (int) *ca[0] endl; // cout (int) *ca[1] endl; // cout ca.getCount() endl;Iterator *i new ConcreteIterator(ca);cout 开始遍历 endl;while(!i-IsDone()){cout (int)i-CurrentItem() endl;i-Next();}Iterator *i_desc new ConcreteIteratorDesc(ca);cout 开始反向遍历 endl;while(!i_desc-IsDone()){cout (int)i_desc-CurrentItem() endl;i_desc-Next();}cout --end-- endl;return 0; }结果 开始遍历 5 10 15 20 开始反向遍历 20 15 10 5 --end--
http://www.eeditor.cn/news/120036/

相关文章:

  • ftp网站后台上传WordPress之后
  • 青岛本地招聘网站深圳小蚁人网站建设
  • 最新电子产品网站模板优化网站公司价格是多少钱
  • 企业网站商城天河建设网站公司
  • 广州网站建设联系电话制作网页软件免费
  • 无锡建设工程质量监督网站锦江会员通app下载
  • wordpress 重定位seo线下培训机构
  • 可以进入的网站建设储蓄卡网站
  • 网站后台首页设计php网站建设与维护
  • 项城市建设方案公示在哪个网站专业设计美容院装修公司
  • 怎么建设网站后台企业网站做凭安认证有用吗
  • 精品网站建设多少钱公司培训网站需要广播证吗
  • 营口网站建设开发制作最新军事新闻12小时
  • 网站添加悬浮二维码品牌网站解决方案
  • 易语言 网站开发推广普通话手抄报简单又好看
  • 苏州企业建站公司wordpress添加悬浮按钮
  • 回龙观做网站网络营销的内容主要包括哪些方面
  • 关于销售网站有哪些内容asp企业网站开发技术
  • 免费网站模板大全网站建设能力
  • 秦皇岛做网站的公司百度浏览器广告怎么投放
  • 厦门专业网站设计微信公众平台网页
  • 建设企业学习网站pc网站建设的优势是什么
  • 注册公司去哪个网站做网站编辑的时候没保存怎么
  • 网站建设培训资料江门公司做网站
  • 企业网站维护建设ppt东莞外发加工货源网
  • 越南的网站建设传奇手游源码网
  • 伍佰亿营销型网站注册的空间网站吗
  • 长春网站开发招聘网站的策划做推广
  • 怎么做提卡密网站苏州做手机网站
  • 衡阳建网站技术支持 鼎维重庆网站建设专家