社区
工具平台和程序库
帖子详情
string的分配策略?
EffectiveCpp
2004-11-21 12:25:33
string是如何分配的?就像vector的策略那样.
我想知道什么情况下指向string的迭代器失效.
...全文
154
6
打赏
收藏
string的分配策略?
string是如何分配的?就像vector的策略那样. 我想知道什么情况下指向string的迭代器失效.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
EffectiveCpp
2004-11-24
打赏
举报
回复
to Jinhao(辣子鸡丁):
似乎不是这样, 看下面一例:
int main()
{
string a("hello");
string b(a);
string::iterator iter=b.begin();
cout << *iter << endl;
*iter = 'b'; //COW
cout << *iter << endl; //为何iter会自动变动指到新位置?不失效?
cout << a << endl;
cin.get();
}
Jinhao
2004-11-24
打赏
举报
回复
string::iterator iter=b.begin();
//因为在这里,b在这里就重新分配了内存空间来存放自己的字符串!因为basic_string的iterator是random access iterator,这是可写的,得到一个迭带器,就意味可能通过这个iterator将改变其中的元素。所以COW是在这里进行!
EffectiveCpp
2004-11-23
打赏
举报
回复
怪不得我的迭代器在replace之后就异常.
Jinhao
2004-11-22
打赏
举报
回复
和vector一样,还有个特点就是COW
whoho
2004-11-22
打赏
举报
回复
还没注意过这点,也没有分析过源码。
我觉得保险起见,在造成string增长(变短似乎可以不考虑)之后,
最好不要使用迭代器。
EffectiveCpp
2004-11-21
打赏
举报
回复
为什么没人回答?
Java中的
String
主要讲解
String
类型的不可变性,里面的方法,==等
String
对象内存
分配
策略
一、内存
分配
策略
我们先来看一个题目(这个问题都快看吐了~),你知道正确的运行结果并给出解释吗。不知道也没关系,我会在下面给出具体的分析。 @Test public void test() {
String
s1 = &amp;quot...
JVM学习(二)内存
分配
策略
文章目录内存
分配
策略
????概述????对象已死?引用计数算法可达性分析算法Java类对象引用生存还是死亡?回收方法区????垃圾收集算法分代收集理论标记-清除算法标记-复制算法标记-整理算法????内存
分配
与回收
策略
????...
Java内存区域划分和内存
分配
策略
Java内存区域划分和内存
分配
策略
如果不知道,类的静态变量存储在那? 方法的局部变量存储在那? 赶快收藏 Java内存区域主要可以分为共享内存,堆、方法区和线程私有内存,虚拟机栈、本地方法栈和程序计数器。如下...
Kafka分区
分配
策略
(3)——自定义分区
分配
策略
接上文: 1.【Kafka分区
分配
策略
(1)——...读者不仅可以任意选用Kafka所提供的3种
分配
策略
,还可以自定义
分配
策略
来实现更多可选的功能。自定义的
分配
策略
必须要实现org.apache.kafka.clients.consum...
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章