添加到 C++ 集中的条目的范围?

问题描述 投票:0回答:1

假设我有一个全局范围的集合,定义如下:

std::set<Person> people;

我有一个函数,可以创建类

Person
的实例,并将其添加到集合中,如下所示:

void addEntry() {
    Person p1("kosh", 55);
    people.emplace(p1);
}

按照我的理解,将创建对象的副本(我可以看到复制构造函数被调用)并添加到集合中。一旦该函数终止,

p1
就会超出范围。但是,添加到集合中的副本的范围是什么?这是由集合的范围决定的吗?

c++ scope set
1个回答
0
投票

但是,添加到集合中的副本的范围是什么?这是由集合的范围决定的吗?

是的。 该副本位于

set
内部,当
set
被清除或销毁时,该副本也会被销毁。 除非您事先
erase()
输入
Person
条目。

© www.soinside.com 2019 - 2024. All rights reserved.