STL
不拿牌不改名
ACM刚入门,博客写错了可以留言给我啊
展开
-
C++ STL vector的insert用法整理
Vector因为vector是可以和数组一样操作的,所以很多用法都几乎用不到;比如insert用法,很少用到,但是还是要复习一下;vector<int>ve;ve.insert(ve.begin(),1);//表示在第一个位置插入1 ve.insert(ve.end(),10);//表示在末尾位置追加10 最变态的是vector还可以和二分结合起来用;例题:洛谷·P1168 中位数这题是给你n个数字,然后让你求出前1,3,5,…个数的中位数。一般的思路是开一个multiset原创 2020-05-27 16:09:31 · 2215 阅读 · 0 评论 -
C++ STL set用法整理
SetSet 是什么Set 是 C++STL 中提供的容器, set 是数学上的集合——具有唯一性,即每个元素只出现一次,而 multiset 则是可重集(即每个元素可多次出现),两者的内部实现是一棵红黑树,它们支持的函数基本相同;排序set 支持自动排序,默认是由小到大排,和很多其他排序数据结构一样,也可以手写排序,就是重载小于号;如果是单纯的要由大到小排也可以:set< int,greater<int> >se;//由大到小排序如果有多个关键字,那么可以手写结构体,重原创 2020-05-27 14:59:54 · 222 阅读 · 0 评论 -
C++ STL next_permutation和prev_permutation
紫书第187页next_permutation函数作用:使排列变成字典序更大的下一个排列;用法:next_permutation(数组起始地址,数组结尾地址);如果有下一个排列,返回true,否则返回false;代码:#include<bits/stdc++.h>#define LL long long#define pa pair<int,int>#def...原创 2020-01-07 21:32:24 · 152 阅读 · 0 评论 -
stable_sort的运用 [JLOI2011]不重复数字(洛谷 P4305)
[JLOI2011]不重复数字题目描述给出N个数,要求把其中重复的去掉,只保留第一次出现的数。例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。输入格式输入第一行为正整数T,表示有T组数据。接下来每组数据包括两行,第一行为正整数N,表示有N个数。第二行为要去重的N个正整数。输出格式对于每组数据,输出一...原创 2019-10-30 20:27:55 · 239 阅读 · 0 评论 -
ACM常用STL总结
STL几种容器总结在做题过程中,STL容器的使用频率非常高,很多时候会忘记一些容器的使用方法;在这里总结一下;也避免一些坑点;1.set俗称“集合”,这个东西的作用我目前多用于去重,和判断一个元素是否已经出现过;这个容器自带排序功能,具体底层不深究;一些常用函数:(1)set s;(2)插入:s.insert(1); 多用 尾端插入1(3)把元素放入容器尾端: s.push_ba...原创 2019-10-25 18:56:18 · 447 阅读 · 0 评论 -
C++ STL 三种二分查找归纳
STL二分查找在STL里面有binary_search,lower_bound , upper_bound 三种二分查询的方法,复杂度都为log(n);在一些查找题目里面,作用很大;前提三种查找都是基于要查找的容器是已经排好序的情况下( 必须为从小到大排),这个容器可以是数组,结构体,map,set,vector;返回值比较头疼的是三种查找的返回值binary_sear...原创 2019-09-08 12:00:10 · 610 阅读 · 0 评论