C++ C++;确定要使用的容器的动态方法

C++ C++;确定要使用的容器的动态方法,c++,C++,再次更新,以反映这次有点不同的问题,希望我能找到解决方案: 我可以想象一个有两名工人的商店——一名工人的工作是接收产品并将其存放在适当的箱子中,另一名工人的工作是根据客户的要求挑选产品并将其出售给客户 预计商店将储存“N”种产品(可变),每个箱子只需存放类似的产品 如何着手解决这个问题 若容器可以共享不同的项目,那个么我可以在共享头文件中定义一个容器,每个工人都可以在这个共享容器上操作。这里的问题是容器应该只包含类似的项目,并且无法想出一种通用的方法来定义变量“N”产品的共享容器 我还考虑过为

再次更新,以反映这次有点不同的问题,希望我能找到解决方案:

我可以想象一个有两名工人的商店——一名工人的工作是接收产品并将其存放在适当的箱子中,另一名工人的工作是根据客户的要求挑选产品并将其出售给客户

预计商店将储存“N”种产品(可变),每个箱子只需存放类似的产品

如何着手解决这个问题

  • 若容器可以共享不同的项目,那个么我可以在共享头文件中定义一个容器,每个工人都可以在这个共享容器上操作。这里的问题是容器应该只包含类似的项目,并且无法想出一种通用的方法来定义变量“N”产品的共享容器

  • 我还考虑过为每种产品类型预先定义容器——但这种方法的问题是——当添加新产品时——我必须更新文件头以定义一个新容器——我正试图避免这种情况——如果有任何方法可以动态定义此容器的话——并且可以在2个用户之间共享工人


谢谢

你似乎把很多不同的概念弄糊涂了,肯定比这张表格里能弄清楚的要多

解决这个问题的一种方法是创建一个基类
Product
,从中派生出所有的“产品类型”,巧妙地解决第一个要点,因为任何标准容器都可以容纳具有公共基类的各种类型

但你的描述是如此模糊,以至于我不知道这对你来说是否是一个可行的解决方案

我的印象是,在没有OOP和C++的基本经验的情况下,你正在努力解决先进的生产工人问题。从一开始就开始,耐心地学习类型、类、对象和继承的示例。如果你这样做,你不仅可以更好地了解自己真正想要实现的目标。你还将发展词汇,以同样精确的方式提问。(比如,我们是在看单线程的“家庭作业”式程序、多线程应用程序,还是多个进程相互通信——我还是不确定。)


事实上,我们所能做的就是猜测,并对我们所理解的可能是您的问题的解决方案(可能是也可能不是)的一般方向胡说八道……

类似于
typedef std::multimap Map?不在标题中定义变量。为什么需要这个?此信息将帮助我们为您提供适当的答案。每个程序都有自己的项目副本。让它跨流程共享并不是一件小事。-1:真的不清楚什么应该与什么、在哪里和何时共享。请从高层次的角度解释你想做什么,即从用户的角度出发,最好是在一个新问题中(以避免与这条长长的讨论线索混淆)。谢谢你的回答。实际上,我已经有了一个针对单个产品的工作解决方案——将唯一的ptr映射到类对象。我可以选择在这个类中添加一个变量-产品类型,这将成为泛型。但我试图避免在这个类中添加“产品类型”。相反,我试图探索我是否可以根据我操作的产品定义一个动态地图。它看起来像-我可能最终会将“产品类型”本身添加到类中,从而解决问题。。我们将进一步探讨。谢谢@EJUSE:你是否考虑模板函数,根据其参数的类型,决定是否从<代码> STD::MAP <代码>中添加/删除?正如你指出的,我最近才从C++开始,并可以基于其他示例来构建。我目前没有使用基于模板的函数。我还没有放弃这个任务。在我的例子中,创建对象的“工厂”方法可能会有所帮助。。。进一步探索。。