std::vector 元素是否保证是连续的?

2023-12-11

我的问题很简单:是std::vector保证元素是连续的?换句话说,我可以使用指向 a 的第一个元素的指针吗?std::vector作为 C 数组?

如果我没记错的话,C++ 标准并没有做出这样的保证。但是,那std::vector如果元素不连续,几乎不可能满足这些要求。

有人可以澄清这一点吗?

Example:

std::vector<int> values;
// ... fill up values

if( !values.empty() )
{
    int *array = &values[0];
    for( int i = 0; i < values.size(); ++i )
    {
        int v = array[i];
        // do something with 'v'
    }
}

C++98 标准本身遗漏了这一点,但后来作为 TR 的一部分添加了。即将推出的 C++0x 标准当然会将此作为一项要求。

来自 n2798(C++0x 草案):

23.2.6 类模板向量[向量]

1 向量是支持随机访问迭代器的序列容器。此外,它还支持(摊销) 最后的恒定时间插入和擦除操作;中间的插入和擦除需要线性时间。贮存 管理是自动处理的,但可以给出提示以提高效率。的元素 向量是连续存储的,这意味着如果 v 是一个向量,其中 T 是其他类型 大于 bool,那么对于所有 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

std::vector 元素是否保证是连续的? 的相关文章

  • 向进度条添加百分比文本 C#

    我有一个方法可以显示进程栏何时正在执行以及何时成功完成 我工作得很好 但我想添加一个百分比 如果完成 则显示 100 如果卡在某个地方 则显示更少 我在网上做了一些研究 但我无法适应我正在寻找的解决方案 这是我的代码 private voi
  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且

随机推荐

  • 为什么 PHP 中不推荐使用 mime_content_type() ?

    我只是想知道为什么mime content type 现在被认为已弃用 这种确定 mime 类型的方法比替换要容易得多Fileinfo功能 该方法并未被弃用 它曾经在手册中被错误地标记为已弃用 但已被修复https bugs php net
  • 确保用户以正确的格式输入了电子邮件地址字符串?

    我在 联系人 屏幕中有一个文本字段 用户需要输入电子邮件地址才能向我发送消息 确保用户输入有效电子邮件地址的最佳方法是什么 例如 email protected net org co il email protected email pro
  • 错误:(246, 5) 错误:资源“attr/rippleColor”的值与配置“重复”

    当我将 android studio 升级到版本 3 时 我遇到了这个问题 Error 246 5 error duplicate value for resource attr rippleColor with config 这是我的等级
  • Bootstrap 4 - 折叠外的导航栏项目

    好吧 我不得不承认 即使在 BS3 中 我也一直在努力如何正确工作 但我希望在折叠容器外部保持持久的导航栏链接 这就是我现在所拥有的
  • 在两个活动之间传递位图[重复]

    这个问题在这里已经有答案了 我正在开发一个绘画应用程序 我想在其中将位图图像从一个活动传递到另一个活动 但该项目没有响应 我将相对布局截图转换为位图并通过Intent传递 但问题没有解决 这是我的代码 绘画活动 package com ne
  • 使用 .net Web 服务从 iPhone 调用 http post URL

    当我点击按钮时 我需要从我的 iPhone 调用一个 url 该 url 将 UITextField 中的值作为参数 并且使用 POST 方法来调用 Web 服务 我如何在我的 iPhone 中使用该 URL 我用 GET 方法做了同样的事
  • iPhone 启动画面

    我真的很尽力 但我无法真正找出我的代码中出了什么问题 我做了很多搜索 但我想我只是无法理解一些客观的 c 基础知识 我的第一个问题与下面的代码有关 window addSubview tabBarController view UIImag
  • java.util.NoSuchElementException:即使我们使用流,也没有值存在

    我是 java 新手 我正在运行本地服务器 jar 并尝试访问 API 端点 所有数据都是正确的 我得到以下信息 java util NoSuchElementException 不存在值 执行似乎发生在代码片段的下面一行 得到 任何帮助是
  • 使用 openpyxl 将 pandas 数据框复制到 Excel

    我在模板文件中保存了一些复杂的格式 我需要将 pandas 数据框中的数据保存到其中 问题是当我使用 pd to excel 保存到此工作表时 pandas 会覆盖格式 有没有办法以某种方式将 df 中的值 粘贴到工作表中 我正在使用熊猫0
  • 是否可以通过Python脚本执行QPDF

    我正在开发一个处理 PDF 文件的 python 脚本 尽管其中一些文件包含加密 限制使用只能打印 我必须手动删除它们才能处理它们 为此我一直手动使用QPDF在运行脚本之前删除对单个 PDF 文件的这些限制 qpdf 的命令非常简单 在命令
  • 无法在 iOS 中将 XMPPFramework 连接到 Openfire 服务器

    我正在研究一个iOS用户登录应用程序的聊天应用程序 我已经下载了XMPPFramework来自 GitHubXMPP框架 我正在尝试连接XMPP框架与Openfire服务器通过以下方式本教程 这是我将 XMPP 连接到 openfire 的
  • 有人在 Windows 7 上成功使用 Visual Studio 6 吗?

    VS6 在 Windows 7 上安装期间出现了一系列错误 然后完全崩溃 我特别需要让 VB6 在 Windows 7 上运行 有人有运气吗 VB6 新闻组中的人们report他们已经设法让它在 Windows 7 上运行 There s
  • 如何在 DirectX 9 中将 XMMATRIX 转换为 D3DMATRIX?

    我从 www directxtutorial com 学习 DirectX DirectX 9 并在 Windows 8 中使用 Visual Studio 2012 d3dx9 d3dx 被其他标头 例如 DirectXMath 替换 因
  • Android - 以编程方式同步联系人添加到谷歌帐户

    在我的应用程序中 我需要将联系人添加到默认谷歌帐户并同步它 这是我的代码 public static void addContact Context context String DisplayName String WorkNumber
  • 未找到命名对象资源 - Omnifaces + JSF 2.2.12

    自从我安装了 Mojorra 版本 2 2 12 从 2 2 8 开始 以来 我的 JSF 页面出现了问题 加载页面时它会抛出异常 例外情况是 命名对象 未找到 org omnifaces component output Resource
  • li:last-child 似乎在 IE8 中不起作用

    下面是我的html结构 div class footerMenu ul li Home li li About li li Feedback li li Contact us li ul div But footerMenu li last
  • 如何翻转x轴?

    I am plotting amplitude reconstruction of FMCW radar 我只想翻转里面的图 但是 x 轴应该是相同的 我该怎么办呢 下面是我的绘图代码 for i 1 2500 dividing each
  • 无法在 win64 模式下运行新项目,但 win32 模式可以正常运行

    我最近重新格式化了运行 Windows 8 1 的计算机 并重新安装了 Delphi XE6 它在格式化计算机之前运行良好 每当我打开一个新项目并按 F9 Windows 64 作为目标平台 时 我都会收到以下错误 Debugger Ass
  • Perl 正则表达式查找精确单词

    我想找到这个词sprintf在我的代码中 应该使用什么 Perl 正则表达式 有些行的文字如下sprintf private 我想排除它 但只需要sprintf 你必须使用 b在单词的边界处 bsprintf b
  • std::vector 元素是否保证是连续的?

    我的问题很简单 是std vector保证元素是连续的 换句话说 我可以使用指向 a 的第一个元素的指针吗 std vector作为 C 数组 如果我没记错的话 C 标准并没有做出这样的保证 但是 那std vector如果元素不连续 几乎