Lai*_*uan 5 c++ stl variable-assignment
例如:
set<int> s1;
set<int> s2;
s1.insert(1);
s2.insert(2);
s1 = s2;
Run Code Online (Sandbox Code Playgroud)
安全吗?如果是这样,旧元素(以及它们发生的内存)来自哪里?
是的,完成任务是安全的.它调用复制构造函数或赋值运算符,旧元素被删除s1并被元素替换s2.
[注意:如果本来任何潜在的问题,然后拷贝构造函数和任务将被禁止像fstream,ofstream,ifstream.]
是.旧元素将以通常的方式被销毁并释放任何内存.(当然像往常一样,如果你将指针存储在容器中,它只会破坏指针,并且不会释放它所指向的东西)
是的,你的例子是安全的。但请注意:您不是将 s2 分配给 s1,而是将 s2 复制到 s1。有关更多信息,请参阅:set::operator=