C++ 为什么 empty set::emplace() 将一个元素插入到一组指针中?
C++ why does empty set::emplace() inserts an element into a set of pointers?
考虑以下代码:
struct A{};
int main()
{
std::set<A*> aset;
aset.emplace();
std::cout << aset.size() << std::endl; //prints "1"
return 0;
}
为什么空 emplace()
向指针集添加一个元素?
因为emplace
将:
[Insert] a new element into the container by constructing it in-place with the given args if there is no element with the key in the container.
容器之前是空的,所以您肯定要插入一个新元素。零参数是 A*
的有效构造函数,因此代码编译后得到一个 set
和一个指向 A
.
的值初始化指针
考虑以下代码:
struct A{};
int main()
{
std::set<A*> aset;
aset.emplace();
std::cout << aset.size() << std::endl; //prints "1"
return 0;
}
为什么空 emplace()
向指针集添加一个元素?
因为emplace
将:
[Insert] a new element into the container by constructing it in-place with the given args if there is no element with the key in the container.
容器之前是空的,所以您肯定要插入一个新元素。零参数是 A*
的有效构造函数,因此代码编译后得到一个 set
和一个指向 A
.