我还是不能理解为什么需要这个函数。如果是java不支持指针我可以理解。但是现在是c++ [#2875792@0 -ROLIA.NET 相约加拿大网上社区 之 枫下论坛 & 枫下部落, 枫下论坛主坛 ]
我还是不能理解为什么需要这个函数。如果是java不支持指针我可以理解。但是现在是c++
by
baalinca
(scarb)
at
2006.3.31 10:12
(#2875792@0)
#1 所有需要“交换2个vector内部所有元素”的地方都可以改用“直接交换2个vector的指针”来实现。放着直接交换指针这种最简单有效的方法不用,采用交换内容的方法,是没有道理的。
#2 “swaps some member variables of primitive types”当然很好,但是不同的节点类型要交换的成员变量不同,这意味着不同节点类型需要不同的swap。如果采用直接交换vector指针的方法,你根本不需要关心节点类型。
#3 交换指针也是exception-safe的。
vector *a; vector *b;
a = b;是简单的赋值语句,不需要创建temporary copy of b。