std - string

来源:互联网 发布:菜鸟网络校园加盟条件 编辑:程序博客网 时间:2024/03/29 03:04

关键点

1. 赋值时,如string s1 = "abcd" 或 string s1 = s2,s1首先分配足够的内存,然后将字符串或者s2复制到刚分配的内存,所以之后字符串或者s2修改,都不会影响s1。

2. string的长度不是int,而是string::size_type,string::size_type是一个unsigned类型,之所以不是标准类型,是因为标准类型和机器关系很大,如果一些机器是16位的,int只能容下32767个字符,不够大。

3. 下标操作可以用做左值,即可修改,但是如果超过越界,那么将会出现内存错误;

4. 下标越界读取的是空;

5. string s1(s2, pos2, len2),如果pos2超过了s2的size,结果是未定义,我的运行结果是抛出异常;如果len2超出了size,那么只会复制s2.size()-pos2;