列表:[下标随机访问] 随机访问迭代器
链表:for_each(遍历) 双向迭代器
栈和队列:没有迭代器
vector容器
原理:动态拓展数组
构造函数:
vector v; 采用模板实现类实现,默认构造函数
vector(v.begin(), v.end()); 区间拷贝构造
vector(n, elem); 构造函数将n个elem拷贝给本身
vector(const vector &vec); 拷贝构造函数
vector赋值操作:
vector& operator=(const vector &vec); 重载等号操作符
assign(beg, end); 将[beg, end)区间中的数据拷贝赋值给本身
assign(n, elem); 将n个elem拷贝赋值给本身
vector容量和大小:
empty(); 判断容器是否为空
capacity(); 容器的容量
size(); 返回容器中元素的个数
resize(int num); 重新指定容器的长度为num
reserve(); 预留空间
vector插入和删除:
push_back(ele); 尾部插入元素
pop_back(); 删除最后一个元素
insert(pos,vlaue) 任意插入
erase(pos) 任意删除
clear() 清空
vector数据存取:
at(int idx) 索引存储,带有异常机制
operator[] 索引存储,不带异常机制
front() 第一个元素
back() 最后一个元素
string 容器:
- `string();` //创建一个空的字符串 例如: string str;
- `string(const char* s);` //使用字符串s初始化
- `string(const string& str);` //使用一个string对象初始化另一个string对象
- `string(int n, char c);` //使用n个字符c初始化
string赋值操作:
- `string& operator=(const char* s);` //char*类型字符串 赋值给当前的字符串
- `string& operator=(const string &s);` //把字符串s赋给当前的字符串