摘要: 正常的情况下是从小到大,如果想改变就要使用仿函数在构造的时候就改变,和set一样。这里只传入int是因为排序的key数据是int数据,如果排序的key数据是自定义数据,那就一定要写仿函数了,就像set里边一样 class mycompare { public: bool operator()(int 阅读全文
posted @ 2022-05-11 22:26 纸包鱼 阅读(231) 评论(0) 推荐(0)
摘要: 函数原型:find(key); //查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();count(key); //统计key的元素个数 和set一样的操作 阅读全文
posted @ 2022-05-11 22:17 纸包鱼 阅读(79) 评论(0) 推荐(0)
摘要: 函数原型:insert(elem); //在容器中插入元素。clear(); //清除所有元素erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器。erase(beg, end); //删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。erase(key); 阅读全文
posted @ 2022-05-11 22:12 纸包鱼 阅读(1382) 评论(0) 推荐(0)
摘要: size(); //返回容器中元素的数目empty(); //判断容器是否为空swap(st); //交换两个集合容器 跟set一样,没区别 阅读全文
posted @ 2022-05-11 21:56 纸包鱼 阅读(103) 评论(0) 推荐(0)
摘要: 函数原型:构造:map<T1, T2> mp; //map默认构造函数: map(const map &mp); //拷贝构造函数赋值:map& operator=(const map &mp); //重载等号操作符 ()构造和=赋值,构造和赋值的方式种类也很少 除了要注意构造时模板参数列表中有两个 阅读全文
posted @ 2022-05-11 21:55 纸包鱼 阅读(773) 评论(0) 推荐(0)
摘要: 简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不 阅读全文
posted @ 2022-05-11 21:47 纸包鱼 阅读(45) 评论(0) 推荐(0)
摘要: set容器默认排序规则为从小到大,如果想改变,就要使用仿函数,仿函数本质是一个数目类型 因为他本身就会排序,所以改变排序要从初始化的时候就开始。 自定义的数据类型都是会自己定义一个排序顺序 class mycompare { public: bool operator()(int v1,int v2 阅读全文
posted @ 2022-05-11 21:40 纸包鱼 阅读(1120) 评论(0) 推荐(0)
摘要: 功能描述:成对出现的数据,利用对组可以返回两个数据 两种创建方式:pair<type, type> p ( value1, value2 );pair<type, type> p = make_pair( value1, value2) 也就是用pair创造包含两个数据类型的变量,而这两个数据类型绑 阅读全文
posted @ 2022-05-11 20:17 纸包鱼 阅读(35) 评论(0) 推荐(0)
摘要: #include <typeinfo>// c++输出数据类型 template<typename T> void PrintDataType(T var_) { cout << typeid(var_).name() << endl; }typeid().name()的作用就是数据数据类型,一般输 阅读全文
posted @ 2022-05-11 20:01 纸包鱼 阅读(685) 评论(0) 推荐(0)
摘要: 函数原型:find(key); //查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();count(key); //统计key的元素个数 注意find返回的是一个迭代器,到现在为止学到过的迭代器的.end()都是空的数据位NULL,这种时候如果硬要解引用一般生成的是 阅读全文
posted @ 2022-05-11 19:39 纸包鱼 阅读(208) 评论(0) 推荐(0)
摘要: 函数原型:insert(elem); //在容器中插入元素。clear(); //清除所有元素 erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器。erase(beg, end); //删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。erase(elem) 阅读全文
posted @ 2022-05-11 19:38 纸包鱼 阅读(479) 评论(0) 推荐(0)
摘要: size(); //返回容器中元素的数目 empty(); //判断容器是否为空swap(st); //交换两个集合容器 和之前其他的容器方式相似,不同的就是没有resize这种操作,比如本来有5个,resize10,这个时候0就重复了,从逻辑上来说就不符合 阅读全文
posted @ 2022-05-11 19:35 纸包鱼 阅读(92) 评论(0) 推荐(0)
摘要: 构造:set<T> st; //默认构造函数:set(const set &st); //拷贝构造函数赋值:set& operator=(const set &st); //重载等号操作符 构造和赋值操作与之前相似,只是少好几种种类 multiset与set是相同的操作,默认其中是从小到大的顺序 而 阅读全文
posted @ 2022-05-11 19:30 纸包鱼 阅读(168) 评论(0) 推荐(0)
摘要: 集合/关联式容器,所有的元素在插入的时候都会被自动的排序,其底层是二叉树 而set和multiset的唯一区别就是set中不能有重复元素,multiset可以有重复元素,其他都一样,也公用一个set头文件 阅读全文
posted @ 2022-05-11 19:21 纸包鱼 阅读(30) 评论(0) 推荐(0)
摘要: 函数原型:reverse(); //反转链表sort(); //链表排序 reverse,直接反转链表中的顺序,猜测就是直接将链表中的begin和end换了,毕竟本身就是双向循环列表,连指针都不用重连 sort,对链表进行排序,默认是从小到大,注意,这个sort不能使用标准算法中的sort,也就是s 阅读全文
posted @ 2022-05-11 16:44 纸包鱼 阅读(354) 评论(0) 推荐(0)
摘要: front(); //返回第一个元素。back(); //返回最后一个元素。 这类与之前一样,但是没有了at和[]的方式,因为list本身是链表,他不是连续的空间,并且迭代器不支持跳跃访问,所以不支持用at或者[]直接访问中间的数据。 想要访问中间的 数据只能生成一个迭代器,然后不断地++或者--才 阅读全文
posted @ 2022-05-11 16:34 纸包鱼 阅读(234) 评论(0) 推荐(0)
摘要: 函数原型:push_back(elem);//在容器尾部加入一个元素pop_back();//删除容器中最后一个元素push_front(elem);//在容器开头插入一个元素pop_front();//从容器开头移除第一个元素insert(pos,elem);//在pos位置插elem元素的拷贝, 阅读全文
posted @ 2022-05-11 16:23 纸包鱼 阅读(1010) 评论(0) 推荐(0)
摘要: 函数原型:size(); //返回容器中元素的个数empty(); //判断容器是否为空resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。resize(num, elem); //重新指定容器的长度为num 阅读全文
posted @ 2022-05-11 15:23 纸包鱼 阅读(300) 评论(0) 推荐(0)
摘要: 函数原型:assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身。assign(n, elem); //将n个elem拷贝赋值给本身。list& operator=(const list &lst); //重载等号操作符swap(lst); //将lst与本身的元素 阅读全文
posted @ 2022-05-11 15:19 纸包鱼 阅读(448) 评论(0) 推荐(0)
摘要: 函数原型:list<T> lst; //list采用采用模板类实现,对象的默认构造形式:list(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身。list(n,elem); //构造函数将n个elem拷贝给本身。list(const list &lst); //拷贝构造 阅读全文
posted @ 2022-05-11 15:16 纸包鱼 阅读(75) 评论(0) 推荐(0)