一周学习总结1

1. 加快cincout的速度

 ios::sync_with_stdio(false);

2.文本替换

 define

如:#define ll long long表示用ll代替long long,这样在写代码是就可以简便很多。

3.STL

  • set
    可以用来储存数据,并且可以自动排序,可以自主设计排序方式,默认从小到大排序并去除重复的数据;
    定义:set<数据类型>定义的变量名;
    操作:1.只能通过迭代器进行访问。set<定义的数据类型>::iterator 变量名=定义的变量名.begin();
    2.清空所有元素。定义的变量名.clear();
    3.找到某个元素的地址。定义的变量名.find(要找的元素);时间复杂度:O(logn)
    4.插入一个元素。定义的变量名.insert(要插入的元素);
    5.获得其中元素的个数。定义的变量名.size();
    6.删除某个元素。定义的变量名.erase(要删除的元素);
    7.删除一个区间内的所有元素。定义的变量名.erase(first,last);first为所需要删除区间的第一个迭代器,last为所需要删除区间的最后一个迭代器的下一个地址。
    8.判断定义的set是否为空。定义的变量名.empty();若为空则返回ture

lower_bound(要找的元素);返回第一个大于等于要找的元素的迭代器。
upper_bound(要找的元素);返回第一个大于要找的元素的迭代器。

  • multiset

与set相似,不同点在于priorityset可以放入相同的数据元素;操作相同,不再赘述。

  • map
    为一个关联容器,类似于数组,不过下标可以自己定义类型。
    定义:map<key,value>x;key可以看做数组的下标类型,value可以看做数组中的元素类型,x为自定义的变量名。
    操作:
    1.四种插入方法:
    利用pair:x.insert(pair<key,value>(要插入的key类型数据 , 要插入的value类型数据));
    利用make_pair:x.insert(make_pair(要插入的key类型数据 , 要插入的value类型数据));
    利用value_type : x.insert(map<int, string>::value_type(要插入的key类型数据 , 要插入的value类型数据));
    直接数组方式插入:x[要插入的key类型数据]=要插入的value类型数据;
    2.查找:用迭代器遍历。map<key , value>::iterator it=x.begin();it为自定义的变量名。
    访问key值:it->first; 访问value值: it->second;
    3.x.count(指定元素); 返回指定元素出现的次数。
    4.获得其中元素的个数。定义的变量名.size();
    5.删除某个元素。定义的变量名.erase(要删除的元素);
    6.删除一个区间内的所有元素。定义的变量名.erase(first,last);first为所需要删除区间的第一个迭代器,last为所需要删除区间的最后一个迭代器的下一个地址。
    7.判断定义的set是否为空。定义的变量名.empty();若为空则返回ture

  • multimap
    与map相似,不同点在于priorityset可以放入相同的数据元素;操作相同,不再赘述。

  • vector
    相当于数组的容器。
    1.能通过迭代器进行访问。set<定义的数据类型>::iterator 变量名=定义的变量名.begin();也可以像数组一样使用。
    2.清空所有元素。定义的变量名.clear();
    3.找到某个元素的地址。定义的变量名.find(要找的元素);时间复杂度:O(logn)
    4.插入一个元素。定义的变量名.insert(要插入的元素);插入到尾部。定义的变量名.push_back(要插入的元素);
    5.获得其中元素的个数。定义的变量名.size();
    6.删除某个元素。定义的变量名.erase(要删除的元素);
    7.删除一个区间内的所有元素。定义的变量名.erase(first,last);first为所需要删除区间的第一个迭代器,last为所需要删除区间的最后一个迭代器的下一个地址。
    8.判断定义的set是否为空。定义的变量名.empty();若为空则返回ture

  • priority_queue
    priority_queue的本质是堆。
    1.empty() 如果优先队列为空,则返回ture。
    2.pop() 删除第一个元素 。
    3.push() 加入一个元素 。
    4.size() 返回优先队列中元素的个数 。
    5.top() 返回优先队列中有最高优先级的元素即最大的那个元素。

贪心算法

局部最优得到整体最优。
贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解。用局部解构造全局解,即从问题的某一个初始解逐步逼近给定的目标,以尽可能快的求得更好的解。当某个算法中的某一步不能再继续前进时,停止。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值