C++ STL
草莓感冒片
~~~
展开
-
Vector的初始化
vector<Elem> vec; //默认构造函数,产生一个空vector,没有任何元素vector<Elem> vec(vec2); //拷贝构造函数,建立vec2的同型vector并成为vec2的一份拷贝(所有元素均被复制)vector<Elem> vec = vec2;//拷贝构造函数,建立一个新的vector作为vec2的拷贝(每个元素均被复制)vec...原创 2018-05-31 11:07:31 · 566 阅读 · 0 评论 -
STL remove()与erase()的使用
remove()示例:initializer_list<int> list_t = { 1, 2, 1, 3, 4, 1, 5, 6, 7, 8 };vector<int> vec(list_t);vector<int>::iterator it;for (it = vec.begin(); it != vec.end(); ++it){ cout &l...原创 2018-05-31 17:08:58 · 1365 阅读 · 0 评论 -
Vector的操作
简单操作vec.empty();//返回是否容器为空(相当于size() == 0 但也许较快)vec.size();//返回目前的元素个数vec.max_size();//返回元素个数之最大可能量vec.capacity();//返回"不进行空间重新分配"条件下的元素最大容量vec.reserve(num);//如果容量不足,则扩大vec.shrink_to_fit();//要求降低容...原创 2018-06-01 10:17:37 · 587 阅读 · 0 评论 -
Priority Queue——优先级队列
class priority_queue<>实现一个queue,其中的元素依优先级被读取,它的接口和queue非常相近,push()入队,top()/pop()访问/出队下一个元素。namespace std{ template <typename T, typename Container = vector<T>, ...原创 2018-06-08 15:25:07 · 236 阅读 · 0 评论 -
线性结构——栈
栈是先进后厨的线性表。即限定仅能在表的一端进行插入(入栈)或删除(出栈)操作的线性表。示例template<typename T>class AbstractStack{public: virtual void ClearStack() = 0; virtual bool StackEmpty() const = 0; virtua...原创 2018-08-23 08:59:04 · 265 阅读 · 0 评论 -
查找数组中的众数
查找数组中出现次数最多的数示例一int most_(vector&lt;int&gt; arr) { int len = arr.size(); vector&lt;int&gt; tmp(len, 0); vector&lt;int&gt;::iterator it = arr.begin(); while (it != arr.end()) { tmp[*it++]++; }原创 2018-10-02 14:44:24 · 3256 阅读 · 0 评论