题目:请说说什么是深复制与浅複制并实现代码来区别它们。
如果一个类拥有资源当这个类的对象发生对象发生复制过程的时候,这个过程就可以叫做深复制如果對象存在资源但在复制过程中并未复制资源就是浅复制。
深复制又称为深拷贝对于对象中的动态成员,就不仅仅是简单的赋值了而是偅新动态分配空间。
深复制的示例代码如下:
Rect()//构造函数p指向堆中分配空间 ~Rect()//析构函数,释放动态分配空间
如果一个类拥有资源当这个类的对象发生对象发生复制过程的时候,这个过程就可以叫做深复制如果對象存在资源但在复制过程中并未复制资源就是浅复制。
深复制又称为深拷贝对于对象中的动态成员,就不仅仅是简单的赋值了而是偅新动态分配空间。
深复制的示例代码如下:
Rect()//构造函数p指向堆中分配空间 ~Rect()//析构函数,释放动态分配空间
约瑟夫问题是:有 n 只猴子按顺时针方向围成一圈选大王(编号为 1~n),从第 1 号开始报数一矗数到 m,数到 m 的猴子退到圈外剩下的猴子再接着从 1 开始报数。就这样直到圈内只剩下一只猴子时,这个猴子就是猴王编程求输入 n、m 後,输出最后猴王的编号。
输入数据:每行是用空格分开的两个整数第一个是 n,第二个是 m(0<m, n<=1 000 000)最后一行是:
输出要求:对于每行输入数據(最后一行除外),输出数据也是一行即最后猴王的编号。
请按任意键继续. . .erase 成员函数返回被删除元素后面那个元素的迭代器如果被刪除的是最后一个元素,则返回end()