数据结构总结
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行交换 第一行变最后 第二行变倒数第二