Vector
三种遍历
迭代器
普通正向迭代
iterator
只读
const_iterator
反向迭代
reverse_iterator rit.rbegin(), rit.rend();
resize(n,char ch) 修改size大小为n,且空数据填充为ch
reserve() 修改capacity空间大小,就不用扩容了
vector<int>::iteator pos = find(v.begin(),v.end(),5);
sort()
迭代器失效
对于vector insert()和erase()会导致迭代器位置不对,所以失效
带增容的接口都有可能导致迭代器失效
删除容器中所有偶数,erase(it)也会导致之后,也会出现it失效
//解决办法
it = v.erase(it); //erase()会返回它的下一个位置的迭代器
vector实现
reserve(n)
memcpy(tmp,_strat,sizeof(T)*size());
resize()
深浅拷贝问题
vector < string > v;
memcpy(tmp,_start,sizeof(T)*sz); //自定义类型,浅拷贝
练习
只出现一次的数字 https://leetcode.cn/problems/single-number/description/
vector没有 ‘\0’,string才有 ‘\0’,这是他们的区别
memxxx 是按字节给你处理
00000000 00000000 00000000 00000000
00000001 00000001 00000001 00000001