【发布时间】:2020-12-01 12:33:12
【问题描述】:
假设订阅可以表示为string,也许是一个感兴趣的主题。
我的班级有 Subscribe() 和 Unsubscribe() 方法获取这些字符串,并维护我们当前订阅的字符串的 unordered_set。
为方便起见,析构函数将从您当前订阅的每个主题中Desubscribe()(我们可以说,这对于这个系统来说是必需的)。
但是简单循环不起作用,因为Unsubscribe() 正在删除设置项。
请注意,在类似的问题中,删除是可选的,并且可能由相关方法完成。这个问题不同,因为删除是通过不同的方法完成的。
那么最清晰的编码方式是什么?
unordered_set<string> setsSubscribed;
MyClass::~MyClass() {
while ( auto it: setsSubscribed )
Unsubscribe( *it );
}
【问题讨论】:
-
请在C++问题中添加c++标签,以便更多用户看到。
标签: c++ c++11 set unordered-set