读万卷书,行万里路——木子成
问题:
使用copy拷贝非内置类型(类类型)数据,并且拷贝变量和被拷贝变量相同时(类类型数组向后移动N单位),出现重复拷贝,情况:
前言:
这又是一个感觉啥也没学到就过去的一天.......时间如白驹过隙~~~~
闲话少说:
让我们来看看这段代码:
代码目的:这里我们将str内存中的每个字符向后移动一个单位,把‘a’放在str[0]的位置
对照输出,按照在下的理解,这里关于copy()的使用完全没问题
那我们再来看看一段代码:
代码目的:这里我们将pair内存中的每个对象向后移动一个单位,把Pair(-1)放在pair[0]的位置
我们的预计,输出应该是这样的:
但是,该代码的输出是这样的:
对于内置类型(int, char~)本人亲测均无问题
为什么会出现这样的情况,我也不知道。。。。(待有缘人正确解答)
让我们尝试着分析:
将pair[0]复制给pair[1],再将pair[1]复制给pair[2],再将pair[2]复制给pair[3]~~~~~
如果按照这样的方式copy,那不重复才怪咯
但是为什么内置类型不会出现这样的情况,那就不知道了,这可能要等以后仔细的去看copy()每个重载函数源码才知道了(希望有缘人给出解答)