具有以下内容:
#include <set>
std::set<const char *> global = std::set<const char *>();
void x() {
const char *c = "a";
const char *d = "b";
global.insert(c);
global.insert(d);
}
int main() {
x();
for (std::set<const char *>::const_iterator iter=global.begin(), end=global.end(); iter!=end; ++iter) {
printf("%s\n", *iter);
}
return 0;
}
最后,正如预期的那样,我收到a
并b
打印了。
然而,是否有任何保证,例如,如果该集合是bozo
对象的一部分,那么作为集合,它们将持续到bozo
的生命周期结束?或者我必须strdup
用弦来确定吗?