随笔分类 - c++黑马笔记
摘要:功能描述:成对出现的数据,利用对组可以返回两个数据 两种创建方式:pair<type, type> p ( value1, value2 );pair<type, type> p = make_pair( value1, value2) 也就是用pair创造包含两个数据类型的变量,而这两个数据类型绑
阅读全文
摘要:#include <typeinfo>// c++输出数据类型 template<typename T> void PrintDataType(T var_) { cout << typeid(var_).name() << endl; }typeid().name()的作用就是数据数据类型,一般输
阅读全文
摘要:函数原型:find(key); //查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();count(key); //统计key的元素个数 注意find返回的是一个迭代器,到现在为止学到过的迭代器的.end()都是空的数据位NULL,这种时候如果硬要解引用一般生成的是
阅读全文
摘要:函数原型:insert(elem); //在容器中插入元素。clear(); //清除所有元素 erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器。erase(beg, end); //删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。erase(elem)
阅读全文
摘要:size(); //返回容器中元素的数目 empty(); //判断容器是否为空swap(st); //交换两个集合容器 和之前其他的容器方式相似,不同的就是没有resize这种操作,比如本来有5个,resize10,这个时候0就重复了,从逻辑上来说就不符合
阅读全文
摘要:构造:set<T> st; //默认构造函数:set(const set &st); //拷贝构造函数赋值:set& operator=(const set &st); //重载等号操作符 构造和赋值操作与之前相似,只是少好几种种类 multiset与set是相同的操作,默认其中是从小到大的顺序 而
阅读全文
摘要:集合/关联式容器,所有的元素在插入的时候都会被自动的排序,其底层是二叉树 而set和multiset的唯一区别就是set中不能有重复元素,multiset可以有重复元素,其他都一样,也公用一个set头文件
阅读全文
摘要:函数原型:reverse(); //反转链表sort(); //链表排序 reverse,直接反转链表中的顺序,猜测就是直接将链表中的begin和end换了,毕竟本身就是双向循环列表,连指针都不用重连 sort,对链表进行排序,默认是从小到大,注意,这个sort不能使用标准算法中的sort,也就是s
阅读全文
摘要:front(); //返回第一个元素。back(); //返回最后一个元素。 这类与之前一样,但是没有了at和[]的方式,因为list本身是链表,他不是连续的空间,并且迭代器不支持跳跃访问,所以不支持用at或者[]直接访问中间的数据。 想要访问中间的 数据只能生成一个迭代器,然后不断地++或者--才
阅读全文
摘要:函数原型:push_back(elem);//在容器尾部加入一个元素pop_back();//删除容器中最后一个元素push_front(elem);//在容器开头插入一个元素pop_front();//从容器开头移除第一个元素insert(pos,elem);//在pos位置插elem元素的拷贝,
阅读全文
摘要:函数原型:size(); //返回容器中元素的个数empty(); //判断容器是否为空resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。resize(num, elem); //重新指定容器的长度为num
阅读全文
摘要:函数原型:assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。assign(n, elem); //将n个elem拷贝赋值给本身。list& operator=(const list &lst); //重载等号操作符swap(lst); //将lst与本身的元素
阅读全文
摘要:函数原型:list<T> lst; //list采用采用模板类实现,对象的默认构造形式:list(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身。list(n,elem); //构造函数将n个elem拷贝给本身。list(const list &lst); //拷贝构造
阅读全文
摘要:链表容器,数据进行链式存储 链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的,链表由一系列结点组成,每个节点由一个是存储数据元素的数据域和存储下一个结点地址的指针域组成,链表有单向链表,双向链表,循环链表,STL标准模板库(Standard Tem
阅读全文
摘要:先进先出的数据结构,队列类 队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 入队 push队列中出数据称为 出队 pop 功能描述:栈容器常用的对外接口 构造函数:queue<T> que; //queue采用模板类实现,q
阅读全文
摘要:一种先进后出的数据,只有一个出口,实际上就是栈类 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 入栈 push栈中弹出数据称为 出栈 pop 功能描述:栈容器常用的对外接口 构造函数:stack<T> stk; //stack采用模板类实现, stack对象的默认构造形
阅读全文
摘要:#include<ctime> srand((unsigned int)time(NULL));//为了防止每次产生的随机数都相同
阅读全文
摘要:赋值操作函数原型:deque& operator=(const deque &deq); //重载等号操作符assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。assign(n, elem); //将n个elem拷贝赋值给本身。 也是和vector基本一致,=和
阅读全文
摘要:函数原型:deque<T> deqT; //默认构造形式deque(beg, end); //构造函数将[beg, end)区间中的元素拷贝给本身。deque(n, elem); //构造函数将n个elem拷贝给本身。deque(const deque &deq); //拷贝构造函数 构造函数和ve
阅读全文
摘要:使用const形参的目的是为了调用函数时不改变容器中的值,这种时候,容器的迭代器也要换成const的,否则会出错 void printdeque(deque<int>const &d) { for (deque<int>::const_iterator i = d.begin(); i != d.e
阅读全文