【发布时间】:2020-10-13 20:31:15
【问题描述】:
我在一个范围内创建了一个大的vector<object>,我想将它推入驻留在该范围之外的向量而不复制它(因为它非常大)。有没有一种方法可以将向量 v 推入 vvec 而无需像我目前所做的那样进行复制?
std:vector<std::vector<object>> vvec;
{
std::vector<object> v;
v.emplace_back(object());
vvec.push_back(v);
}
【问题讨论】:
-
或者,您可以
vvec.emplace_back()一个新的空向量,然后使用vvec.back().emplace_back(object());添加到它。它节省了一步,但从异常安全的角度来看可能并不理想。
标签: c++ copy stdvector move-semantics