文档章节

c++ STL string的引用计数

Yan9527
 Yan9527
发布于 2017/09/06 19:30
字数 133
阅读 25
收藏 0

STL string的引用计数,多个通过拷贝构造和复制操作具有相同值的string共享一块内存,由引用计数该参数保存共享内存的string个数,    通过写时拷贝防止修改共享内存的值.

但是,如果强制转换可能会引起共享内存被修改,例如

std::string str1 = "共享内存";

std::string str2 = str1;

char * tmp = (char *) str2.c_str();

这时,tmp可以更改共享内存,str1中的值可以被改变

© 著作权归作者所有

共有 人打赏支持
Yan9527
粉丝 0
博文 30
码字总数 10667
作品 0
海淀
后端工程师
私信 提问
C++ 对象资源管理惯用法

原文:C++ 对象资源管理惯用法 作者:Breaker 关于 C++ 对象资源管理的惯用法,note-to-self + keynote + idiom case + cross-reference 式笔记 keyword: RAII, deleter, Two-stage Initiali...

晨曦之光
2012/05/23
147
0
C++ 智能指针

智能指针(Smart Pointer),是一个来用存储指向动态分配(堆)对象指针的类。简单的说,它本身是一个类,这个类是用来存储对象指针。 一、智能指针的介绍 智能指针,就是具备指针功能同时提...

长平狐
2013/01/06
756
0
个人以前经常犯的5大C++作死行为。

真心地,每看一遍自己以前的代码就想骂自己一遍,作死啊,真的是too young too simple, sometimes naive啊。给大家分享一下,求喷。 1.new出一个指针后判断它是否为空。 一看就是过时的书看多...

梦游的睡鼠
2014/05/18
1K
5
三好学生Chris Lattner的LLVM编译工具链

2011年12月3日,LLVM 3.0正式版发布,完整支持所有ISO C++标准和大部分C++ 0x的新特性, 这对于一个短短几年的全新项目来说非常不易。 开发者的惊愕 在2011年WWDC(苹果全球开发者大会)的一...

Rifle
2012/11/16
0
0
C++11 中值得关注的几大变化(详解)

源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里。所以,我就不翻译了,我在这里仅对文中提到的这些变...

红薯
2011/08/19
3.2K
14

没有更多内容

加载失败,请刷新页面

加载更多

MyBaties分页插件PageHelper的简单使用

抛出问题: 如果想要将现有的select语句改为支持分页功能的查询语句该怎么做呢? 最简单的一种做法就是将所有的select语句都加上limit来实现分页,这种做法有什么问题呢? 有没有一种简便方法...

嘴角轻扬30
14分钟前
0
0
创业公司如何快速构建高效的监控系统?

12 月 7 日,在 2018 ArchSummit 全球架构师峰会·运维与监控专场,七牛云资深运维开发工程师贺强带来了主题为《如何快速构建高效的监控系统》的内容分享。 本文是对演讲内容的实录整理。 大...

七牛云
15分钟前
0
0
Docker与自动化测试及其测试实践

Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造。自动化的成本在于自动化程序的编写和维护,而收益在于节省了手动执行用例的时间。简而言之,如果收益大于成本...

微笑向暖wx
15分钟前
0
0
Spring Cloud 分布式链路跟踪 Sleuth + Zipkin + Elasticsearch

随着业务越来越复杂,系统也随之进行各种拆分,特别是随着微服务架构的兴起,看似一个简单的应用,后台可能很多服务在支撑;一个请求可能需要多个服务的调用;当请求迟缓或不可用时,无法得知...

编程SHA
18分钟前
1
0
Swift-清除缓存

func removeCache (){ // 取出cache文件夹路径.如果清除其他位子的可以将cachesDirectory换成对应的文件夹 let cachePath = NSSearchPathForDirectoriesInDomains(FileMan...

west_zll
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部