【 在 capriccio 的大作中提到: 】
: 又想了一下,其实我的主要目的是a转换为b的过程中,把a里的数据计算后直接填充到b已经占用的内存中,以提升性能。
: 你说的这个类型转换函数相当于是要在类型转换函数中新建一个vector<int>的对象c,申请好内存,把a里的数据计算后填充到c中,类型转换函数返回c,然后再执行拷贝。哪怕最后用的是移动语义,省去了拷贝的开销,也还有销毁b已有的内存加上申请c所需内存的开销。
:
你这是需要一个move 拷贝。 也就是带move功能的拷贝构造函数,
vector本身有一个swap的功能, 如果你的类里面有对应的vector<int>成员,
可以在move拷贝的时候, 做相应的swap的就可以了。
--
FROM 115.171.244.*