使用boost的disjoint_set
。它有一个拷贝构造函数。据我的理解,它使用在构造函数调用期间移交的指针来访问它的数据,并且它本身不管理内存分配。因此,当您复印时,实际数据(与复制std::vector<T>
时不同)不会被复制。您会看到两个看似不同的实例(因为您没有使用引用)来访问和修改相同的数据。这似乎是随意的,用例不明确。为什么你想要一个浅拷贝(而不是参考)?
所以问题是,你为什么会说disjoint_set
的拷贝构造函数是有用的,为什么你会创建一个拷贝构造函数来返回一个实例的浅拷贝?
你想要一个关于'disjoint_set'的回答吗?或者一般情况下? – SingerOfTheFall
@SingerOfTheFall这是两个密切相关的东西? – zehelvion