C++ vector::clear

标签 c++ vector

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/

相关文章:

c++ - C++类中的静态动态二维数组

c++ - 使用指针逐列遍历多维数组

c++ - 将对象添加到 vector

R:在条形图中,中点不居中 w.r.t.酒吧

c++ - std::find 包含指针的 vector

c++ - 定义使用此类型作为模板参数的类型和函数

c++ - 从同一类中的另一个成员对象访问成员对象

c++ - 禁用类指针递增/递减运算符

c++ - 使用异步 C++ 进行 vector 的并行乘法

vector - glsl 成员明智? : operator