随笔分类 -  stl与算法

c++stl与算法algorithm
摘要:C++STL提供几个二分查找的方法。 lower_bound() (1)原型template< class ForwardIt, class T >ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value );返回第 阅读全文
posted @ 2022-03-04 07:16 心悟&&星际 阅读(167) 评论(0) 推荐(0) 编辑
摘要:学习前提:数据结构与算法中的堆 对make_heap(), pop_heap(), push_heap()的用法做个总结: make_heap()生成堆,他有两个参数,也可以有三个参数,前两个参数是指向开始元素的迭代器和指向结束元素的下一个元素的迭代器。第三个参数是可选的,可以用伪函数less()和 阅读全文
posted @ 2022-03-03 21:57 心悟&&星际 阅读(62) 评论(0) 推荐(0) 编辑
摘要:P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G这是一道贪心算法的题目,每次选择两个最小的堆,合并后,继续直到只有一堆为止,可能用优先队列进行维护。 #include<bits/stdc++.h>using namespace std;i 阅读全文
posted @ 2022-03-03 16:28 心悟&&星际 阅读(77) 评论(0) 推荐(0) 编辑
摘要:P1177 【模板】快速排序 #include<bits/stdc++.h>using namespace std;int main(){ priority_queue<int,vector<int>,greater<int> > q; int n; cin>>n; for (int i=1;i<= 阅读全文
posted @ 2022-03-03 14:23 心悟&&星际 阅读(25) 评论(0) 推荐(0) 编辑
摘要:普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。首先要包含头文件#include<queue>, 他和queue不同的就 阅读全文
posted @ 2022-03-03 12:22 心悟&&星际 阅读(79) 评论(0) 推荐(0) 编辑
摘要:1. STL有6种序列容器类型(1)vector它提供对元素的随即访问,在尾部添加和删除元素的时间是固定的,在头部或中部插入和删除元素的复杂度为线性时间。(2)deque在<deque>文件中声明。是双端队列,支持随即访问。从deque的开始与末尾位置插入和删除元素的时间是固定的。尽管vector和 阅读全文
posted @ 2022-03-02 14:56 心悟&&星际 阅读(753) 评论(0) 推荐(0) 编辑
摘要:P1177 【模板】快速排序由于map可以按关键值排序,且每个关键值可以有对应值表示该关键值的个数,所以可以完成这道题 #include<bits/stdc++.h>using namespace std;int main(){ map<int,int> s; int n; cin>>n; for 阅读全文
posted @ 2022-03-02 08:58 心悟&&星际 阅读(32) 评论(0) 推荐(0) 编辑
摘要:P1177 【模板】快速排序 由于multiset能自动对关键值进行排序,所以multiset可以进行排序功能且支持相同关键值 #include<bits/stdc++.h>using namespace std;int main(){ multiset<int> s; int n; cin>>n; 阅读全文
posted @ 2022-03-02 08:45 心悟&&星际 阅读(38) 评论(0) 推荐(0) 编辑
摘要:#include<vector> #include<iostream> #include<algorithm> using namespace std; vector <int> a; vector <int>::iterator ita; int main() { int q,n,x; cin>> 阅读全文
posted @ 2022-03-01 09:03 心悟&&星际 阅读(23) 评论(0) 推荐(0) 编辑
摘要:map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡 阅读全文
posted @ 2022-02-28 21:31 心悟&&星际 阅读(141) 评论(0) 推荐(0) 编辑
摘要:c++ stl集合(Set)是一种包含已排序对象的关联容器。set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素。2) 不提供直接存取元素的任何操作 阅读全文
posted @ 2022-02-28 21:16 心悟&&星际 阅读(63) 评论(0) 推荐(0) 编辑
摘要:向量(vector):是一个顺序容器(Sequence Container),它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组(元素个数可变)。vector的插入和删除不支持在任意位置O(1)插入,所以为了保证vector的效率,一般增删在末尾进行; 头文件#inclu 阅读全文
posted @ 2022-02-28 21:07 心悟&&星际 阅读(48) 评论(0) 推荐(0) 编辑