数据结构总结

vector动态数组 .back()返回数组最后一个元素。

stack堆栈,没有迭代器,支持push()方法。后进先出,top()返回最顶端的元素,pop()剔除最顶元素

deque双端队列,支持迭代器,有push_back()方法,跟vector差不多,比vector多了个pop_front,push_front方法

queue队列,先进先出,不支持迭代器,有push()方法,pop()剔除第一个元素,front()返回第一个元素

set集合,元素是唯一的,默认情况下会对元素自动进行升序排列,支持集合的交(set_intersection),差(set_difference) 并(set_union),对称差(set_symmetric_difference) 等一些集合上的操作。因为元素是唯一的,可用来判断,一个数组中是否含有重复元素。

初始化:

const int N = 6;
const char* a[N] = {"isomer", "ephemeral", "prosaic", 
   "nugatory", "artichoke", "serif"};
const char* b[N] = {"flat", "this", "artichoke",
   "frigate", "prosaic", "isomer"};

set<const char*,ltstr> A(a, a + N);
set<const char*,ltstr> B(b, b + N);

或者 直接insert。 

 

vector之二维数组

声明:vector<vector<int>> res(M, vector<int>(N, 0)); 

上面的一行声明了一个二维数组M行N列的二维数组,并且初始化为0;

有一个交换的函数reserve(res.begin(), res.end()); //将res行交换 第一行变最后 第二行变倒数第二

posted @ 2016-02-25 17:19  mengmee  阅读(155)  评论(0编辑  收藏  举报