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

dedecms5.7装饰公司网站模板安庆seo

dedecms5.7装饰公司网站模板,安庆seo,logo制作步骤,wordpress 在线预约插件在组合模式中,为了实现同一层上部件的有序性,可以采取以下几种设计方法: 1. 使用有序集合 使用有序集合(如 std::list、std::vector 或其他有序容器)来存储和管理子部件。这种方法可以确保子部件按照特定顺序排列&am…

在组合模式中,为了实现同一层上部件的有序性,可以采取以下几种设计方法:

1. 使用有序集合

使用有序集合(如 std::liststd::vector 或其他有序容器)来存储和管理子部件。这种方法可以确保子部件按照特定顺序排列,并且可以通过索引访问。

示例代码:
#include <vector>
#include <iostream>class Component {
public:virtual void operation() = 0;virtual ~Component() {}
};class Leaf : public Component {
public:void operation() override {std::cout << "Leaf operation" << std::endl;}
};class Composite : public Component {
public:void operation() override {for (auto& component : components) {component->operation();}}void add(Component* component) {components.push_back(component);}void remove(Component* component) {components.erase(std::remove(components.begin(), components.end(), component), components.end());}private:std::vector<Component*> components;
};int main() {Composite* root = new Composite();root->add(new Leaf());root->add(new Leaf());root->add(new Leaf());root->operation(); // 输出 "Leaf operation" 三次delete root;return 0;
}

在这个示例中,Composite 类使用 std::vector 来存储子部件,确保它们按添加顺序排列。

2. 使用索引管理

在添加子部件时,可以指定一个索引位置,从而控制子部件的排列顺序。

示例代码:
#include <vector>
#include <iostream>class Component {
public:virtual void operation() = 0;virtual ~Component() {}
};class Leaf : public Component {
public:void operation() override {std::cout << "Leaf operation" << std::endl;}
};class Composite : public Component {
public:void operation() override {for (auto& component : components) {component->operation();}}void add(Component* component, int index) {if (index < 0 || index > components.size()) {index = components.size();}components.insert(components.begin() + index, component);}void remove(Component* component) {components.erase(std::remove(components.begin(), components.end(), component), components.end());}private:std::vector<Component*> components;
};int main() {Composite* root = new Composite();root->add(new Leaf(), 0); // 插入到位置 0root->add(new Leaf(), 1); // 插入到位置 1root->add(new Leaf(), 0); // 插入到位置 0,原来的部件后移root->operation(); // 输出 "Leaf operation" 三次,顺序为新插入的第一个,然后是原来的第一个,最后是原来的第二个delete root;return 0;
}

在这个示例中,add 方法允许你指定插入子部件的索引位置,从而控制子部件的排列顺序。

3. 使用排序标准

如果你需要更复杂的排序逻辑(例如按某些属性排序),可以在添加子部件后对集合进行排序。

示例代码:
#include <vector>
#include <algorithm>
#include <iostream>class Component {
public:virtual void operation() = 0;virtual ~Component() {}virtual int getPriority() const = 0; // 排序标准
};class Leaf : public Component {
public:Leaf(int priority) : priority(priority) {}void operation() override {std::cout << "Leaf operation with priority " << priority << std::endl;}int getPriority() const override {return priority;}
private:int priority;
};class Composite : public Component {
public:void operation() override {std::sort(components.begin(), components.end(), [](Component* a, Component* b) {return a->getPriority() < b->getPriority();});for (auto& component : components) {component->operation();}}void add(Component* component) {components.push_back(component);}void remove(Component* component) {components.erase(std::remove(components.begin(), components.end(), component), components.end());}int getPriority() const override {return 0; // 组合节点的优先级}private:std::vector<Component*> components;
};int main() {Composite* root = new Composite();root->add(new Leaf(3));root->add(new Leaf(1));root->add(new Leaf(2));root->operation(); // 输出 "Leaf operation with priority 1", "Leaf operation with priority 2", "Leaf operation with priority 3"delete root;return 0;
}

在这个示例中,Leaf 类有一个 priority 属性,Composite 类在执行操作时会根据优先级对子部件进行排序,从而实现有序性。

总结

通过使用有序集合、索引管理或排序标准,你可以在组合模式中实现同一层上部件的有序性。这些方法可以根据具体需求灵活选择,以满足不同的排序和组织要求

http://www.hkea.cn/news/936124/

相关文章:

  • 做网站用哪几个端口 比较好百度贴吧官网网页
  • 弹幕网站是怎么做的百度在线翻译
  • 独立网站域名代发关键词包收录
  • 如何建立门户网站百度可以发布广告吗
  • 网站开发毕设文献郑州网站优化顾问
  • 青海建设银行的官方网站自己制作网页的网站
  • 网站建设的图片叠加步骤过程2021年搜索引擎排名
  • 网站链接到邮箱怎么做搜索引擎推广试题
  • 十堰城市建设网站制作自己的网站
  • 传媒网站建设公司深圳百度seo优化
  • 公司需要网站 该怎么做公司推广咨询
  • 高中男女做那个视频网站seo做的好的网站
  • 网站建设 摄影服务上海seo网站排名优化公司
  • 网页设计中html代码seo博客网站
  • 怎样建设小游戏网站google关键词搜索技巧
  • 淘宝 客要推广网站怎么做全媒体广告代理
  • 那个b2b网站可以做外贸武汉全网推广
  • 深圳css3网站开发多少钱如何策划一个营销方案
  • 织梦统计网站访问量代码网络营销公司如何建立
  • 外贸营销型网站建设今日最新重大新闻
  • 个性化定制网站长春网络推广优化
  • 合肥庐阳区疫情最新消息seo优化首页
  • h5网站制作接单最新中高风险地区名单
  • 北京市住房城乡建设委网站公司怎么在网上推广
  • 网站建设首页怎样插入视频百度指数在线查询小程序
  • 青州网站制作哪家好aso优化哪家好
  • wordpress做网站优点郑州网站seo优化
  • 宝安做棋牌网站建设找哪家公司好湖南长沙疫情最新消息
  • 四川专业网站建设中国十大企业培训机构排名
  • 怎么切页面做网站灰色词首页排名接单