STL(他山之石,可以攻玉)
文章平均质量分 70
骑在木马上的黑客
纵有疾风起,人生不言弃!
展开
-
STL.deque(双向队列)只能从头部和尾部插入和删除元素(可实现stack和queue)
/*STL:vector(动态数组)只能从尾部追加和删除元素deque(双向队列)只能从头部和尾部插入和删除元素(可实现stack和queue)list(双向链表)从任何地方插入和删除元素set和map都是以红黑树(二叉搜索树)的方式实现的*/#include <deque>#include <stack> #include <list>//stack&l...原创 2018-04-17 11:55:29 · 2642 阅读 · 0 评论 -
STL.vector<ptr>容器删除单个元素、部分元素、全部元素
当容器中的元素为指针时,我们删除容器中元素的时候,也要注意使用delete ptr;删除堆堆对象实例,以免造成内存泄露的问题。下面我以vector容器为例,也适用于其它容器(deque、map、set)。#include<iostream>#include<iomanip>#include<vector>#include<string>usi...原创 2018-04-23 10:58:14 · 2132 阅读 · 0 评论 -
STL.multimap一对多映射,查询某个键对应的所有值
#include<iostream>#include<string>#include<map>using namespace std;int main(){ multimap<string,int> m_map; string s("中国"),s1("美国"); m_map.insert(make_pair(s,5...原创 2018-04-16 13:45:31 · 620 阅读 · 0 评论 -
STL.map数据插入的方式及差异
//唯一性检查或重复就覆盖(新值替旧值)#include <map>#include <string>#include <iostream>using namespace std;void DispMap(map<int, string>& mpStu){ cout << "Begin************...原创 2018-04-13 17:08:10 · 205 阅读 · 0 评论 -
STL.set并集,交集,差集和对称差集
STL一共提供了四种set相关的算法,分别是并集(union),交集(intersection),差集(difference),和对称差集(symmetric difference)。 STL的这四个算法所接受的set必须是有序区间,元素可以重复出现。即他们只能接受set/multiset容器作为输入区间。 1、set_unoin(求并集) 算法set_union可构造两个S1,S2这两个...原创 2018-04-27 12:03:48 · 3048 阅读 · 0 评论 -
STL.multiset的用法示例
因为STL中的容器可能是非线性的,所以没有重载+-运算符distance是计算两个iterator直接的距离参数一:距离v.begin比较近的it;参数二:距离v.begin比较远的it;字符串数组有一个'/0'结尾符;STL的容器有一个end结尾符;#include <set>#include <iostream>#include <iomanip>us...原创 2018-04-28 12:46:18 · 424 阅读 · 0 评论 -
STL.heap实现的堆排序
基本函数用法:make_heap(_First, _Last, _Comp);//建立堆push_heap (_First, _Last);//在堆中添加数据pop_heap(_First, _Last);//在堆中删除数据pop_heap(_First, _Last);//在堆中删除数据sort_heap(_First, _Last) ;//堆排序示例代码:#include &l...原创 2018-04-28 12:49:16 · 256 阅读 · 0 评论 -
pair的定义
充当map中键-值对的容器:template <class T1, class T2> struct pair{ typedef T1 first_type; typedef T2 second_type; //pair的两个成员分别是first和second。 T1 first; T2 second; pair() : first(T1()), second(T2())...原创 2018-05-24 15:28:23 · 601 阅读 · 0 评论