赞
踩
数据结构的百科全书,除了基础的数据结构外还有很多进阶的内容,学有余力的同学可以尝试成为OI佬。
https://blog.csdn.net/BuleFACE_Zhang/article/details/135856136?utm_source=miniapp_weixin
C++函数指针与仿函数:自定义排序规则 关于C++的一些自定义排序规则方法
遇到看不懂的方法的时候(C++),可能是宏定义, 方法本身就是一个 宏定义,所以要找到定义他的地方,这种项目的代码 估计宏定义满天飞,如果没有好的文档,代码很难看
自增自减运算符只能用于变量;不能用于常量和表达式。
在使用map容器存储多个键值对时,容器会自动根据键值对的键大小,按照既定的规则进行排序(默认升序,可以自定义)
使用map存储的键值对,键既不能重复也不能修改
multimap和map的区别在于multimap容器可以同时存储多个键相同的键值对
c++很多容器都有find(x)函数:在容器中查找x值,如果找到则返回指向该值的迭代器,否则返回和end()方法结果一样的迭代器
优先队列(priority_queue) 是在队列的基础上添加了内部的排序,本质上是一个堆来实现的;其提供的函数和队列的操作基本相同
声明:priority_queue<Type, Container, Funcitonal>
其中,Type指数据类型, Container指容器类型(必须是数组实现的容器,如vector,deque,不能是list。STL中默认是 vector),Functional 指比较的方式,当需要用自定义的类型时才需要传这三个参数,使用基本数据类型时,只需要传入数据类型即可,默认构造是大顶堆
一般构造为:
注意 迭代器不能与NULL做比较
常用的字符串拼接方式有三种:1. 直接用”+“拼接后在赋给对应值,2. “+=",3. string中的append方法,那么这三种方法有什么区别,效率如何?
“+=“和append方法效率远远高于”+”,因为”+“在每次拼接后会在 内存Q中创建一个新对象,然后将拼接后的字符串赋值给新对象,频繁的创建对象与拷贝消耗了大量时间。而”+="和append每次直接在原字符串进行拼接,直到字符串capacity不够时,才重新分配空间(需要一次对象创建和拷贝)。
关于c的&, 建议大家好好看一下c中&的用法, 加了跟没加主要就是方法内部是否会改变本身, 也就是引用地址
对于频繁插入的场景,C采用list进行插入提高速度(相比于vector),但需要注意C的list迭代器为双向迭代器,不是随机访问迭代器,只能一步一步移动
注意:C++传入函数最好都使用引用,能够大大提高效率
c++中不加&会复制一份数组,加了是引用不用新建一个数组
c++在打比赛的时候有的时候会卡常数,有时候vector过不了数组能过
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。