关于我根本就不记得的常识

我真傻      真的



1.关于lower_bound && upper_bound

转自      http://blog.csdn.net/niushuai666/article/details/6734403   &&    http://blog.csdn.net/niushuai666/article/details/6734650

函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置

举例如下:

一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标

pos = lower_bound( number, number + 8, 3) - number,pos = 0.即number数组的下标为0的位置。

pos = lower_bound( number, number + 8, 9) - number, pos = 1,即number数组的下标为1的位置(即10所在的位置)。

pos = lower_bound( number, number + 8, 111) - number, pos = 8,即number数组的下标为8的位置(但下标上限为7,所以返回最后一个元素的下一个元素)。

所以,要记住:函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。

如果所有元素都小于val,则返回last的位置,且last的位置是越界的

返回查找元素的第一个可安插位置,也就是“元素值>=查找值”的第一个元素的位置

函数upper_bound()返回的在前闭后开区间查找的关键字的上界

如一个数组number序列1,2,2,4.upper_bound(2)后,返回的位置是3(下标)也就是4所在的位置

同样,如果插入元素大于数组中全部元素,返回的是last。(注意:此时数组下标越界!!)

返回查找元素的最后一个可安插位置,也就是“元素值>查找值”的第一个元素的位置

2.关于我背了大半辈子都没背下来的priority_queue 重载运算符

首先 默认状态下的pq与sort的排序是反的 即最开头的最大

然后 如果要把它变成小根堆 比如Dijskstra的时候就重载一发 大概是这么写的

时间: 2024-10-14 10:09:34

关于我根本就不记得的常识的相关文章

C#网络程序设计(1)网络编程常识与C#常用特性

    网络程序设计能够帮我们了解联网应用的底层通信原理!     (1)网络编程常识: 1)什么是网络编程 只有主要实现进程(线程)相互通信和基本的网络应用原理性(协议)功能的程序,才能算是真正的网络编程. 2)网络编程的层次 现实中的互联网是按照"TCP/IP分层协议栈"的体系结构构建的,因此程序员必须搞清楚自己要做的是哪个层次上的编程工作. TCP/IP协议体系的实现情况: 其中,网络接口层已经被大多数计算机生产厂家集成在了主板上,也就是经常所说的网卡(NIC).windows操

跟着SEO常识和SEO手艺的泛滥

跟着SEO常识和SEO手艺的泛滥,SEO行业孔殷需要一种更有意义的交流平台或体例,SEO论坛已经快要走向恼了,像人气很火的坛现在也成了外链的海洋,还好坛推出了SEO问答,而且进行了实名制注册.SEO行业从来都离不开交流,尤其是诚信.有意义的交流,去SEO论坛和站长类论坛的人根基上都是为了发外链.这样的交流没有若干好多真正的意义,常有新人去提问题,但获得的回覆往往是“进修了,看看”之类的灌水说话.对于处所SEO行业,或者说是一个小的SEO圈子,更需要真诚的交流和分享,凭空诬捏做欠好SEO,集思广益

Linux学习笔记(七)--Linux基本常识了解

下面内容大部参阅:鸟哥的私房菜(第三版) http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php#part2  我们下面对LINUX的基本常识做下介绍: Linux是一套开源的.性能稳定的多用户网络操作系统,支持多用户,多线程和多CPU. Linux所有的内容统称文件. 详细有: A.普通文件(regular file):就是一般存取文件,由ls -al显示出来的属性中,第一个属性为[rwx rwx rwx] B.目录文件(director

很少有人会告诉你的Android开发基本常识

原文:很少有人会告诉你的Android开发基本常识. 文章介绍了一些关于开发.测试.版本管理.工具使用等方面的知识.

简述Python中"_"的使用常识

0. 背景 Python里面的下划线"_"使用频率明显比其他主流语言要多的多,而且在Python中,它也有自己独到的用处.本文主要简述:下划线在python中的使用常识. 1. 单下划线-将名称封装到类中 如果想将类中的"私有"数据封装到类的实例上,但是又需要考虑到Python缺乏对属性的访问控制问题.与其依赖语言特性来封装数据,Python程序员们更期望通过特定的命名规则来表达出对数据和方法的用途. 第一个规则是任何以单下划线(_)开头的名字应该总是被认为只属于内

struts2的坑以及tomcat的一些常识

Struts2中坑 1:一个很简单的跳转,死活跳不过去,总是404,那这个时候可以把struts.xml这个配置文件用IE浏览器打开,如果能够正常打开,那么说明struts.xml文件本身没有语法错误. 我遇到的一个struts.xml中错误是<action name="toLogin" class=“com.wyl.toLoginAction” method="execute">,单靠肉眼不容易发现,实际上这个标签里的class属性的引号是中文引号,但

iOS开发——数据持久化OC篇&amp;(七)CoreData高级常识

CoreData高级常识 关于CoreData貌似实际开发中很少用到,基本上是个有九个公司不会使用它,因为都说是性能不好,但是作为一个程序员,了解及其使用时必须了, 下面是我从一位大神那里搬过来的一下Core详细介绍,相信以后总有一天会帮我解决不少学习CoreData中的问题! 一.技术概览 1. Core Data 功能初窥 对于处理诸如对象生命周期管理.对象图管理等日常任务,Core Data框架提供了广泛且自动化的解决方案.它有以下特性. (注:对象图-Object graph的解释:在面

开放的智力10:常识积累

如何在三个月内科学高效地积累常识? 先讲讲自己的故事吧.我对心理学的认识发生过翻天覆地的变化.几年以前,我和所有的心理学研究生一样,一天到晚埋头看文献,钻在一个窄小的知识领域做着与世隔绝的认知心理学研究,满脑子想的就是如何发 paper.心理学有什么用,不是我关心的:或者,让我自豪的就是,心理学是无用之学,正如很多人骄傲地说「数学是无用之学」.「物理是无用之学」.「哲学是无用之学」一样.后来,我在网络上相继了解到了三个人,虽然他们都不是心理学科班,但是对心理学的认识和领悟却让我震撼,让我这个所谓

虚拟化的一些基本常识

本文从以下几个方面介绍虚拟化的一些常识:虚拟化层次的分类及举例:系统虚拟化简史:VMM分类:典型的虚拟化产品:Xen. 虚拟化层次分类及举例 指令级虚拟化 Bochs QEMU 硬件级虚拟化 VMware Xen KVM 操作系统级虚拟化 Linux-VServer OpenVZ 编程语言级虚拟化 JVM .NETCLI 程序级虚拟化 Wine 系统虚拟化简史(硬件级虚拟化) 历史上第一个虚拟机是1965年左右IBM公司开发的system/360 model 40 VM.其最初的设计目的是将当时