微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决基于共同属性配对两个对象

假设您有两个类(尽管在我的情况下一个是在 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 举报,一经查实,本站将立刻删除。