数据结构机考的你,想不想偷懒?快来看一看c++的STL吧。
STL(standard template library)标准模板库提供了一些列数据结构和算法,帮你更高效地解决问题。下面列出一些常用的(STL的一小部分)数据结构和算法接口,标准采用sgi stl,参考自The annotated STL Sources
(所有容器采用泛型设计,可采用泛型方式调用,头文件为容器名)
一、vector 向量容器
vector与array相比,其差异在于vector动态分配空间(线性连续地址),并且集成了一系列操作函数。
public接口:(构造函数与析构函数不列出且有省略)
iterator begin(); //返回首元素
inerator end(); //返回末尾元素的下一个位置指针,注意不是最后一个元素
size_type size() const; //返回vector长度
size_type capacity() const; //返回容器容量
bool empty() const; //返回向量是否为空
reference operator[]; //可用[]符号进行同数组一样的下标访问
void push_back(const T& x); //将x元素添加到最后
void pop_back(); //将最后一个元素取出
iterator erase(iterator position); //删除position位置的元素,并返回操作后position位置的元素
void resize(size_type new_size); //改变向量长度
void clear(); //清空向量
遍历: 迭代器方法、直接线性遍历方法
二、 stack 栈
stack没有迭代器,不可遍历。
stack底层采用list实现。
public接口: (构造函数与析构函数不列出且有省略
STL(standard template library)标准模板库提供了一些列数据结构和算法,帮你更高效地解决问题。下面列出一些常用的(STL的一小部分)数据结构和算法接口,标准采用sgi stl,参考自The annotated STL Sources
(所有容器采用泛型设计,可采用泛型方式调用,头文件为容器名)
一、vector 向量容器
vector与array相比,其差异在于vector动态分配空间(线性连续地址),并且集成了一系列操作函数。
public接口:(构造函数与析构函数不列出且有省略)
iterator begin(); //返回首元素
inerator end(); //返回末尾元素的下一个位置指针,注意不是最后一个元素
size_type size() const; //返回vector长度
size_type capacity() const; //返回容器容量
bool empty() const; //返回向量是否为空
reference operator[]; //可用[]符号进行同数组一样的下标访问
void push_back(const T& x); //将x元素添加到最后
void pop_back(); //将最后一个元素取出
iterator erase(iterator position); //删除position位置的元素,并返回操作后position位置的元素
void resize(size_type new_size); //改变向量长度
void clear(); //清空向量
遍历: 迭代器方法、直接线性遍历方法
二、 stack 栈
stack没有迭代器,不可遍历。
stack底层采用list实现。
public接口: (构造函数与析构函数不列出且有省略