基于共同属性配对两个对象

问题描述

假设您有两个类(尽管在我的情况下一个是在 libc 中定义的结构),它们共享一些属性,但在其他方面不同,其中一个类我可以修改,另一个类我不能修改。在我使用的其中一个函数中,我必须传入一个指向这些结构数组的指针,但我希望直接在两个对象的配对中看到调用效果。关于如何解决这个问题,我有几个想法,但它们最终都变得非常不守规矩且难以维护。例如,将结构存储在向量中并将指针作为属性添加到我可以修改的类中,但这不起作用,因为指针在擦除后通常无效(指向之后的结构的指针无效,但不是删除元素之前的那些)。另一个想法是在两者之间使用映射,但出于类似的原因,这不起作用,因为由于无效,我无法在密钥中使用引用。使用重复对象作为键也是不可能的,因为这也使删除变得非常困难,因为我需要能够根据键或值删除配对。

在我的例子中,对象只有一个公共属性,它在给定时间是唯一的,但在进程的生命周期中可能不是唯一的。

我也被限制使用 C++11,因为它是最新版本,我可以访问支持的唯一编译器。

我不确定如何提供更有用的代码示例,因为它看起来有点微不足道,但这是我最好的尝试:

// Class deFinitions
class A {
    int i;
    ...
};

class B {
    int i;
    ...
};

void F(A*,int num,...);

int main() {
    ...
    std::vector<A> as;
    std::vector<B> bs;

    F(as.data(),as.size(),...);

    ...
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)