目录
vector迭代器的失效问题(一般都是insert和erase后默认失效)
1.模版的原理:
我们要去做的事情让编译器去做
2.释放空间:
释放空间要从首元素释放,不能从中间去释放
3.越界问题:
[]越界会去断言
cat越界互抛异常
insert
insert 不支持下标只支持迭代器,
vector可不可以代替string
vector支持比较大小,但是不支持流插入和流提取,若想去实现的话直接push_back就可以了
vector也是不可以去代替string,因为vector的char没有\0,但是优点的话vector可以去自定义类型
vector迭代器的失效问题(一般都是insert和erase后默认失效)
1.没有实例化不能从类模板里面去提取
2.如果编译器不能区分是类型还是静态成员变量,我们可以在前面加上typename,这样的话编译器就可以去知道是类型了。
3迭代器的传值要求左闭右开。
最好在使用之后就不要访问了,要使用的话就去刷新一下迭代器
vector开空间
vector的空间在VS的下面是1.5倍增加,但是在g++是按照2倍的增加
在用erase会出现的问题
1.我们没有去用else导致我们的在偶数的时候会去少删,或则在不是奇数的时候会直接崩溃。这里面我们会去一下走2次
2.我们最好在erase加一个返回值
类名替代类型
在c++里面可以用类名去替代类型,但是古vy建议这么写不然的会很难理解
List排序
(链表也有排序,但是排序的效率会低一些),一般都是用的归并排序
迭代器的区间构造
其实两个动心可以互相去嵌套的,类模板里面可以去嵌套函数模板,函数模板里面也可以去嵌套类模板,