分配向量而不复制它们
Assigning vectors without copying them
我有两个std::vector
里面有几个std::unordered_set
。但是,其中一个向量将在整个执行过程中替换另一个向量,如下所示:
vector1 = ...
vector2 = ...
// some operations
vector1 = vector2
vector2 = std::vector<...>
有没有办法在不必复制向量内容的情况下实现这一点?
从 C++11 开始,您可以移动分配它们:
vector1 = std::move(vector2); // move vector2 to vector1
vector2 = std::vector<...>; // move the temporary vector to vector2
您可以使用 std::swap 来交换内容
相关文章:
- 将指向给定子类的指针从一个向量复制到另一个向量
- 为共享 ptr 向量实现复制 c'tor?
- 如何在不复制的情况下将一个向量移动到另一个向量中
- 具有 STL 向量类型成员的类的复制内存
- 将字符向量复制到另一个向量
- 如何从字符串向量构造对象并避免复制?
- 在 Cython 中将C++向量转换为 numpy 数组,而无需复制
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 将shared_ptr的向量复制到抽象基的派生类
- 如何避免将向量的完整值复制到另一个容器
- C++向量的哪一部分在传递给函数时被复制
- 如何在向量列表初始化时避免对象复制以及如何延长临时的生存期
- 如何将 int4 数组复制到 int8 向量中
- 复制向量本身
- 在 C++11 中高效复制向量
- 复制向量为成员变量的对象的构造函数
- 不复制向量类成员
- 在不使用元素复制赋值运算符的情况下复制向量 - 可移植性
- 在复制构造函数中复制向量的向量
- 从常量变量复制向量