vector <weight> decoy;
void clear_decoy() {
decoy.clear();
vector<weight> (decoy).swap(decoy);
}
在上述方法中clear_decoy()
, vector<weight> (decoy).swap(decoy);
是什么意思请问是什么意思?
方法是否清除decoy
或不?谢谢!
最佳答案
我以前从未见过这种形式。
我看过它写成:
vector<weight>().swap(decoy);
这意味着“创建一个新的空 vector ,并将其与现有的交换。
vector<weight> (decoy).swap(decoy);
要理解这一点,请分解。
vector<weight>(decoy)
创建一个新 vector (其内容从现在为空的诱饵中复制)。新 vector 是一个异常的临时 vector ,所以我们假装它的名字是 newvector
.
newVector.swap(decoy);
用 decopy 交换新 vector 。
(根据评论更新以修复错误)
关于C++ vector::clear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3477715/