stl分配器、其他类型的复制构造函数、重新绑定

2023-11-25

STL 分配器需要以下构造函数形式 (20.1.5):X a(b);的要求是Y(a) == b;

在标准实现中,这意味着并且实现为:

  template<class U> allocator( const allocator<U> & o ) throw()

我无法理解为什么存在这个要求。我知道分配器应该是静态的(没有任何状态),但是为什么你能够像这样转换它们呢?


为了允许从其他分配器进行构造,因为容器需要使用与您指定的分配器类型不同的分配器类型。例如,列表和映射分配其内部节点类型,而不是它们公开的 value_type。

该代码看起来类似于:

template<class T, class Alloc=std::allocator<T> >
struct Container {
  typedef T value_type;
  typedef Alloc allocator_type;

private:
  struct Node {/*...*/};
  typedef typename Alloc::template rebind<Node>::other RealAllocatorType;
  RealAllocatorType allocator;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stl分配器、其他类型的复制构造函数、重新绑定 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • 是否可以使用 JavaScript 中的对象文字定义动态命名的属性? [复制]

    这个问题在这里已经有答案了 考虑以下 var a foo bar 相当于 var a a foo bar 相当于 var a a foo bar 相当于 var a var b foo a b bar 是否可以做类似的事情 var b fo
  • 在 Android 上将画布保存为位图

    我在将画布的内容放入位图中遇到一些困难 当我尝试执行此操作时 文件大小约为 5 80KB 但它似乎完全是空的 每个像素都是 000 画布上绘制了一系列由手写形成的相互连接的线条 下面是我的视图的 onDraw 我知道它阻塞了 UI 线程 不
  • JavaScript YAML 解析器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个 JavaScript YAML 解析器 它将 YAML 转换为 HTML 页面中可用的内容 我在 Github 上尝试过这个版本 h
  • 默认在 Sublime Text 3 中将程序编译为 c++ 14

    我知道我们可以使用 g 编译器将程序编译为 C 但g 编译器默认为98版本 要将其作为 C 14 运行 我们需要添加 std c 14在终端 Sublime Text 因其轻量级和功能而被认为是竞争性编程中有价值的编辑器 在这些比赛中 时间
  • 使用 Rails 4 将自定义字段/列添加到 Devise

    我正在尝试添加一个full name字段 列到我的用户模型 使用devisegem 和 Rails 4 网上大部分例子推荐使用 attr accessible 但听起来在 Rails 4 中应该以不同的方式处理这个问题 我该如何添加full
  • 分配二进制常量

    有没有办法将二进制值赋给 VB 变量 所有显而易见的选择都不起作用 我尝试过添加前缀 B 附加b但似乎没有任何作用 我寻找它的运气也不好 我不need这适用于我的应用程序 但我只是好奇 所以不需要替代解决方案 编辑 为了澄清起见 我正在寻找
  • 使用 colspan 设置 下 的宽度

    我想设置宽度td in tbody在下面thead具有colspan 2 具有硬定义的列宽 以 为单位 浏览器外壳不会动态调整表格宽度 sample width 100 table layout fixed sample td nth ch
  • java: wait()、notify() 和同步块

    我了解到调用对象的wait 方法将释放对象监视器 如果存在 但我有一些关于打电话的问题notify 另一个线程在此对象上 如果另一个 第三个 线程同时拥有对象监视器 何时 等待线程会醒来吗 如果第三个线程调用 等待线程会被唤醒吗wait 在
  • Ant 中出现“无法创建任务或输入 antlib:org.apache.maven.artifact.ant:mvn”错误

    运行 ant 任务时 Ant 构建无法运行build xml 我在控制台中收到以下错误 Buildfile F Eclipse Projects my project build xml typedef Could not load def
  • 在 Angular 中同步调用一个又一个的可观察对象

    我可以拨打以下服务电话 产品服务 GetAllProducts 产品服务 删除产品 产品服务 GetCategories 产品服务 DeleteCategory 在 sudo 代码中 我需要在组件中执行以下操作 使用productServi
  • 设置 UDP 套接字的源 IP

    我有一个绑定到 INADDR ANY 的 UDP 套接字 用于侦听我的服务器拥有的所有 IP 上的数据包 我通过同一个套接字发送回复 现在 当数据包发出时 服务器会自动选择哪个IP用作源IP 但我希望能够自己设置传出源IP 有没有办法做到这
  • Firebase Firestore REST 示例

    您好 我正在编写一个使用 firebase firestore 并将一些 json 写入 firestore 中的特定集合的脚本 我已经使用实时数据库完成了此操作 但 firestore 有点不同 下面是我的实时数据库片段 curl X P
  • 当另一个输入焦点时,contenteditable div 失去选择

    我对 contenteditable div 有疑问 当我想在其上执行一个简单的命令 如粗体或斜体 时 我执行以下操作 记住div 因为点击粗体按钮后它会失去焦点 单击按钮时 我重新聚焦 div 并执行粗体命令 一切正常 现在 当我尝试做更
  • 如何在 Ecto 迁移中运行更新?

    I use Phoenix and Ecto在我的一个项目中 我想向一个表添加一列 并且我希望它是一个NOT NULL柱子 但我已经有一些现有的数据 所以我决定添加列 将所有行更新为某个值并将列修改为NOT NULL 我尝试了这两个代码 s
  • 何时在 Swift 中使用全局变量

    我正在学习 Swift 和 iOS 应用程序开发 我想知道在哪些情况下 如果有的话 我应该在 iOS 应用程序中使用全局变量和常量 全局变量是在任何函数 方法 闭包或类型上下文之外定义的变量 局部变量是在函数 方法或闭包上下文中定义的变量
  • Git 推送到 Windows 共享失败

    我正在尝试从本地存储库推送到位于 Windows 共享中的远程存储库 我将重新创建一个简单的场景 其中 c 是我的本地硬盘 n 是映射的网络驱动器 并向您展示我遇到的错误 创建本地存储库 user PC W7 c More git git
  • 当多个路径匹配时,Express 如何知道使用哪个 Router 路径?

    假设有2个router route 例如 router route app id get funtion req res next console log id route and router route app username get
  • 如果启用全页缓存,企业版控制器事件不会触发

    因此 在我们最近的一次发布中 我们观察了很多事件 例如controller action predispatch 网站上线后 我们开始注意到我们的观察员从未被要求进行这些操作 经过一番调查后 我们的一位开发人员在 Mage Core Mod
  • PHP 中的推送通知

    在尝试执行 php 脚本以向我的 iphone 发送推送通知后 我收到此错误 我已经尝试了一切 但没有任何效果 我相信这意味着我的ck pem是错误的 但我不确定是 key pem 还是 cert pem 错误 请帮忙 Script Thi
  • stl分配器、其他类型的复制构造函数、重新绑定

    STL 分配器需要以下构造函数形式 20 1 5 X a b 的要求是Y a b 在标准实现中 这意味着并且实现为 template