标准模板库STL之一 序列
*******************容器**********************
1、向量类模板
头文件:<vector>
一、定义
std::vector<type> name;
std::vector<type> name(size); //初始化大小
std::vector<type> name(size,value); //初始化大小并赋值
std::vector<type> name(myvector); //以现有向量初始化
二、添加元素
(1)push_back(val); //在尾部添加
(2)insert(pos,val); //在任意位置添加
三、删除元素
(1)pop_back() //从尾部删除
(2)erase(pos) //从任意位置删除
四、比较向量
向量间可直接比较用:== < > 等比较符号。
五、其他常用方法
(1)at(n) //返回位置n的元素
(2)begin(),end(); //第一个元素,和最后一个元素的下一个.
(3)clear()
(4)empty()
(5)reverse() //反转
(6)size()
(7)swap(vector) //交换
2、双端队列类模板
头文件:<deque>
一、定义
std::deque<type> name;
std::deque<type> name(size)
std::deque<type> name(size,value)
std::deque<type> name(mydeque)
std::deque<type> name(first,last)
二、添加元素
(1)push_back(val)
(2)push_front(val)
(3)insert()
三、删除元素
(1)pop_front()
(2)pop_back()
(3)erase()
四、比较
双端队列也可用比较符号直接比较。
五、其他方法也基本和向量类相同。
3、链表类模板
头文件<list>
一、定义
std::list<type> name;
std::list<type> name(size)
std::list<type> name(size,value)
std::list<type> name(mylist)
std::list<type> name(first,last)
二、添加元素
(1)push_back(val)
(2)push_front(val)
(3)insert()
三、删除元素
(1)pop_front()
(2)pop_back()
(3)erase()
四、比较
列表也可用比较符号直接比较。
五、区别于双端队列的方法
(1)remove(val) //删除所有值为的元素
(2)sort()
(3)sort(pred) //根据谓词排序
(4)unique() //删除重复的元素
*******************容器适配器**********************
1、stack
头文件<stack>
一、定义
std::stack<type, container> name;
container 可为 vector,deque 或 list
eg.std::stack<int, std::list<int> > intStack;
二、方法
empty(), size(), top(), push(), pop()
2.queue
头文件<queue>
一、定义
std::queue<type, container> name;
container 可为 deque 或 list
eg. std::queue<int,std::list<int> > intQueue;
二、方法
empty(), size(), front(), back(), push(), pop()
3.priority_queue
头文件<queue>
一、定义
std::priority_queue<type, container, predicate> name;
container 可为 vector 或 deque
predicate默认为less<type>,可自定义。
eg.std::priority_queue<int, std::vector<int> > intPqueue;
二、方法
empty(), size(), top(), push(), pop()