无法访问集合|C++中的集合

Unable to access set within set | C++

本文关键字:集合 C++ 访问      更新时间:2023-10-16

我有一个名为"Store"的类,它有两个类型为"set"的数据字段:"customers"(std::set类型)和"albums"(std::set<Album>类型)。

std::set<Album> albums;
std::set<Customer> customers;

现在,当我试图将数据保存到其中一个集合时,一切都很好,但在"Customer"类型中,我有第三个名为orders的集合(类型为std::set),当我尝试将数据保存在其中时(在我离开保存数据的函数后),它会消失!

以下是我保存数据的方法:

Customer foundCustomer = *Customer::findID(customers ,id);
Order newOrder = Order();
newOrder.ordNum = ordNum;
newOrder.isPaid = false;
foundCustomer.orders.insert(newOrder);

如果你需要我发布更多代码,请告诉我。

非常感谢您的帮助!

Customer foundCustomer = *Customer::findID(customers ,id);

这行复制了客户。如果你想修改原始客户的设置,你需要使用一个参考:

Customer& foundCustomer = *Customer::findID(customers ,id);

并确保*Customer::findID(...)也会导致引用。