C++:指向 std::string 转换的 char 指针是否复制内容?

2023-12-29

当我转换一个char* to std::string使用构造函数:

char *ps = "Hello";
std::string str(ps);

我知道 std 容器在被要求存储值时倾向于复制值。 是复制整个字符串还是仅复制指针? 如果之后我这样做str = "Bye"这会改变 ps 指向“再见”吗?


std::string对象将分配内部缓冲区并复制指向的字符串ps那里。对该字符串的更改不会反映到ps缓冲区,反之亦然。这就是所谓的“深复制”。如果只复制指针本身而不复制内存内容,则称为“浅复制”。

重申一下:std::string在这种情况下执行深复制。

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

C++:指向 std::string 转换的 char 指针是否复制内容? 的相关文章

  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • DbContext 和 ObjectContext 有什么区别

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

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 使用自定义堆的类似 malloc 的函数

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

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • System.IO.FileNotFoundException:找不到网络路径。在 Windows 7 上使用 DirectoryEntry 对象时出现异常

    我正在尝试使用 DirectoryEntry 对象连接到远程 Windows 7 计算机 这是我的代码 DirectoryEntry obDirEntry new DirectoryEntry WinNT hostName hostName
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • javascript 对 HTML 元素进行排序

    我正在尝试排序li元素并得到意想不到的结果 我需要排序三遍才能正确 我哪里搞错了 javascript var sort by name function a b return a innerHTML toLowerCase gt b in
  • NavigationLink 在按钮内不起作用

    我添加了一个 ToolBarItemGroup 和一个应该导航到另一个视图的按钮 但在这种情况下 带有 navigationLink 的按钮不起作用 这是因为我无法将 navigationLink 添加到 toolbar VStack Na
  • 带有蒙版的 svg 在 chrome 上看不到

    我正在尝试使用 React 动态创建的一些 svg 路径进行掩码 问题是生成的 html 代码无法立即在 Chrome 和 Safari 上正确呈现 调整浏览器窗口大小或从检查器中选中 取消选中样式属性时会出现正确的结果 我觉得问题出在其中
  • Google Cloud LB:更改“服务器错误”默认 html 页面

    默认情况下 如果负载平衡找不到将流量重定向到的后端 例如 如果所有可用后端都已关闭 则会显示以下 html 页面 成绩单 错误 服务器错误 服务器遇到临时错误 无法完成您的请求 请在 30 秒后重试 我想使用我自己的静态 html 页面 我
  • 替换 IE 的 Twitter Bootstrap 导航栏中的背景

    我正在尝试用我自己的图像替换 Twitter Bootstrap 导航栏的背景图像 它适用于 Chrome Firefox 和 Safari 但不适用于 Internet Explorer 我对 IE 缺少什么 在IE中仍然是纯黑色 nav
  • 如何签署 XLA(Excel 加载项)?

    可以通过代码做到这一点吗 也许有可能 但据我所知 任何预构建的 API 都无法做到这一点 如果您可以从代码中签署代码 它将允许自我修改保持签名状态 这将是一个安全问题 现在 VBA 确实允许二进制读 写 您可以在应用程序上安装一个监视器 观
  • vb.net 无法 Console.SetWindowPosition

    我正在 VB NET 中创建 Windows 控制台应用程序 但无法设置相对于屏幕的窗口位置 简而言之 我想要一个使窗口居中于屏幕的功能 我尝试过使用Console SetWindowPosition w h 方法和Console Wind
  • Excel VBA 对象构造函数和析构函数

    我需要在 VBA 中创建一些需要相互引用的自定义对象 但我遇到了一些问题 首先 VBA 中的对象构造函数如何工作 有构造函数吗 第二 有析构函数吗 VBA 如何处理对象生命周期的结束 如果我有一个引用其他对象的对象 这是它们唯一的引用 那么
  • javascript onmouseout 应用于由孩子触发的 div

    我无法通过谷歌找到解决方案 但我认为这将是一个相当常见的问题 我有一个 div 我已经应用了 onmouseout 事件处理程序 该处理程序用于使用 jquerys slideup 函数滚动菜单 因为我希望鼠标离开时隐藏菜单 问题是该 di
  • 检查 Service Worker 中的窗口是否处于活动状态

    我正在尝试运行一个在窗口处于非活动状态时发送推送通知的 Web 应用程序 为此 我有一个 Service Worker 来帮助接收来自我的 php 服务器的通知 通过 Firebase 但是 我不确定如何通过我的服务工作人员检查窗口是否处于
  • 替换 Google App Engine (GAE) 中的 PIL (ImageDraw) 功能

    因此 Google App Engine 看起来不会包含 Python 图像库 有一个图片API http code google com appengine docs python images 但它微不足道 不足以满足我的需要 我想知道
  • Android 互联网连接检查问题

    我是 Android 开发新手 正在开发一个 Android 应用程序 该应用程序需要手机通过 Wifi EDGE 或 3G 连接到互联网 这是我用来检查互联网连接是否可用的代码 public static boolean isConnec
  • 在文件系统中移动该类后,出现“Class XXX 不是有效实体或映射的超类”

    我在 Aib PlatformBundle Entity User php 中有一个实体类 我尝试通过以下方式创建其表单类没有任何问题 php 应用程序 控制台学说 生成 表单 AibPlatformBundle 用户 现在我已将命名空间更
  • 如何获取文本的子串?

    我的文本长度约为 700 我怎样才能只得到大约 30 个前字符 如果你的文字在your text变量 您可以使用 your text 0 29
  • 在 jQuery 中将 JSON 数组转换为 HTML 表

    有没有一种非常简单的方法可以获取 JSON 对象数组并将其转换为 HTML 表 不包括一些字段 或者我必须手动执行此操作 使用 jQuery 将使这变得更简单 以下代码将获取一个数组数组并将它们存储转换为行和单元格 getJSON url
  • 泽西岛 URL 转发

    在 Jersey REST 方法中 我想转发到另一个网站 我怎样才能做到这一点 Path public class News GET Produces MediaType TEXT HTML Path go news id public S
  • 如何基于通用类型“T”初始化 TypeORM 存储库?

    我想启动一个基于通用类型的 TypeORM 存储库 例如 import Connection Repository from typeorm export class GenericService
  • 输入类型数字“仅数字值”验证

    我如何验证输入type number 仅当值是数字或 null 时才有效 仅使用响应式表单 无指令 仅数字 0 9 和 允许 不允许有 e 或任何其他字符 到目前为止我尝试过的 模板
  • 修改linux内核定时器

    我必须运行延迟敏感的应用程序 并且被要求将计时器分辨率更改为 1000 Hz 或更高 我在网上搜索了一下 找到了有关 CONFIG HZ 等的页面 但是 文件中似乎还有其他几个相关设置 因此我想确保不会弄乱这些设置 我在这里发布一些输出 c
  • C++:指向 std::string 转换的 char 指针是否复制内容?

    当我转换一个char to std string使用构造函数 char ps Hello std string str ps 我知道 std 容器在被要求存储值时倾向于复制值 是复制整个字符串还是仅复制指针 如果之后我这样做str Bye