一.知识点1.迭代器被const修饰const interator此时修饰的迭代器本身不是迭代器里面的数据。const_interator此时修饰的是迭代器所指向的数据迭代器本身可以左右移动但是里面的数据不可以移动。2.反向迭代器reverse_interator这个是反向迭代对于此时的就是向前推进。3.max_size计算这个字符串最大可以容下多大的空间capacity当前不用扩容最多存的数据size当前存的数据max_size理论上这个容器可以存多少数据。4.capacity空间正如上面所说的但是需要补充的是输出的cpapcity不是真正的空间要加1因为还有个\0和size一样都是不会把\0加入。扩容在VS中除了第一次扩容接近于2倍其他的都是按照1.5倍进行扩容。5.clear清除是容器里面的所以内容也就是size06.shrink_to_fit缩容就是把多余空间给释放掉capacity10size5此时运用capacity就会把多余的空间给释放掉且不可指定。一般不会使用因为要办运数据一方面会导致数据地址改变另一方面要是数据过多就会浪费时间这是时间换空间但是在通常咱们都是空间换时间7.reserve扩容capacity一般就是1.5倍到2倍的扩容但是当我们有时候知道要运用多少空间的时候这样在运用capacity就有点狼狈了reserve(n)扩容到n个大小这个是扩展capacity下面还有resize容易混reserve(10);reserve(5)l;此时即便这样写capacity依旧是10因为研已经扩了就不会改变了含义至少保证有这么多空间可能多);8.resize1resize20x将size扩展到20多余的是x2resize20将size扩容到20多余的是\0然后要是再掺入数据的话\0不会显示会在元数据之后直接显示新插入的。9.operator[]访问指定位置的数据s1[n]访问si这个字符串里面的n数据。10.at和[]一样唯一不同的就是要是报错的话就是抛异常[]断言进行检查11.append相当于尾部插入数据s1.append(hello bit);在s1后面插入hello bit。s1.append(10, x);在s1后面插入10个x。但是一般不用因为有可以直接进行插入1字符串不需要写多少只需要两个函数s2.insert(0, yyy);开头的位置直接插入三个y。2字符的话需要写入个数才可以s2.insert(0, 1, !);头插一个的话就有所不同了少用因为改变了数据效率不高13.erase1string s3(hello world);s3.erase(5, 1);从5的位置开始向后面删除1个数据s3.erase(5);从5位置开始后面的全部删除。14.replacereplace(pos, len, str)从pos位置开始将后面的len个大小的数据替换成str可以让他变长变短。二.练习