在变量之间移动队列而不复制元素
Move Queues between variables without copying elements
我在一个应用程序中有几个队列,我想更改它们"指向"的位置,为其他队列更改一个队列。
例如,如果我有:
queue<int> q1 = queue<int>();
queue<int> q2 = queue<int>();
queue<int> q3 = queue<int>();
每个队列中都有几个元素,我想更新q1,使其指向q2,更新q2,使其指针指向q3,而不是复制这些元素。我可以做一些类似的事情吗:
q1 = &q2;
q2 = &q3;
q3 = queue<int>();
如果是,我该怎么写?或者,我必须将这些队列转换为指向队列的指针,才能更改它们指向的位置?
我宁愿避免指针,这样我就不必显式地管理内存。
您可以移动元素(从C++11开始)而不是复制:
q1 = std::move(q2);
q2 = std::move(q3);
q3 = queue<int>();
因此q1
保持来自q2
的先前资源、q2
保持来自q3
的先前资源且q3
为空。
相关文章:
- 使用strcpy将char数组的元素复制到另一个数组
- 为什么复制而不是移动数据元素?
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- 调整大小和复制哈希表数组中的元素
- 如何在 2d 矢量 c++ 中复制元素并将其放在原始元素旁边
- C++将所有元素从矢量复制到地图/unordered_map的最佳方法
- 如何在新数组较小时创建新数组并将旧数组的最后一个元素复制到新数组中?
- 除了 std::vector 之外,是否有一个 std 容器不会复制和销毁作为类的元素?
- list.push_back似乎复制了最后添加的元素
- 如何使用指针C++将元素从2D数组复制到1D数组
- 将 Vector<String > 元素复制到其他 Vector<String>* (1 作为
- 如何将 n 个连续元素插入到元素类型不可复制的 std::vector 中?
- 如何将结构深度复制到向量的每个元素
- r-在Rcpp和C++之间转换矢量(使用Rcpp::as或Rcpp:::wrap)是否会创建一个新的矢量并复制元素
- C 是否每次访问数组时都复制元素?
- 在变量之间移动队列而不复制元素
- 矢量中的不可复制元素
- 无序映射插入复制元素
- Mat::p ush_back(x) 是否复制 x 元素
- 基于条件从vector复制元素