c++ - 如何将唯一指针从一个向量移动到另一个唯一指针向量?
问题描述
如何在 C++11 中将aunique_ptr
从一个向量移动到 s 的另一个向量?unique_ptr
第一个向量的唯一指针应该被完全删除并添加到第二个向量。
解决方案
好吧,在这种情况下,您有两个概念上独立的操作:
将元素插入容器。当您想要消除源(这实际上是必要的,因为它
std::unique_ptr
是仅移动类型)时,请使用std::move
启用移动语义。destination.emplace(destination.begin() + m, std::move(source[n])); // or .insert()
从容器中取出掠夺的元素。
source.erase(source.begin() + n);
推荐阅读
- c# - 为 IdentityServer4 安装 Quickstart UI
- javascript - 为相同的代码调用 componentDidMount 和 componentDidUpdate
- spring - 如何仅在 Spring 中为微服务项目的外部客户端启用身份验证?
- git - 如何克隆工作树?
- spring - 如何在没有配置文件和服务文件的 Spring OAuth2 中生成自定义令牌?
- macos - SwiftUI - 将绑定传递给 NSViewRepresentable 会导致内存泄漏和应用程序减速
- http - HTTP 状态 404 - 未找到,尝试在 tomcat 网络服务器上加载 war 文件时遇到此错误
- javascript - 如何使用 Html css Javascript 将 localhost webiste 项目转换为 Android Web 应用程序
- azure - Azure 中针对 kafka 消费者滞后的 Auto Scaling
- graphql - GraphQL:如何处理在自己的类型定义中引用类型?