文章目录 一、设置 set 集合容器的排序规则 1、默认的 set 集合容器 - 从小到大排列 2、设置 set 集合容器从大到小排列 二、使用仿函数自定义 set 集合容器 排序规则 1、仿函数概念...2、使用仿函数实现 set 集合容器排序规则 一、设置 set 集合容器的排序规则 1、默认的 set 集合容器 - 从小到大排列 set 集合容器 底层由 红黑二叉树 数据结构实现 , 默认元素从小到大排序...在 C++ 语言的 STL 标准模板库 中 , set 容器默认是按照升序 从小到大 排序的 ; 如果要设置自定义排序规则 , 可以通过传递一个比较函数或函数对象来指定排序方式 , 该比较函数设置在..., 该对象能像函数那样被调用 ; 具体来说 , 仿函数是一个类 , 该类重载了operator() 函数 , 使其可以像函数那样被调用 , 这种类通常被称为仿函数类或函数对象 ; 在 C++ 语言中..., 仿函数可以用来实现高阶函数 , 即接受函数作为参数或返回函数的函数 ; 例如 : C++ 标准库中的 std::less / std::plus 等都是仿函数类 ; 2、使用仿函数实现 set 集合容器排序规则
malloc函数向系统申请分配size个字节的内存空间。...void* 表示未确定类型的指针。c,c++规定,void* 类型可以强制转换为任何其它类型的指针。...malloc动态内存分配函数头文件#include #include malloc函数使用要求 这个函数要实现的功能是在系统中分配一段连续的可用的内存,具体有如下要求: 1.malloc分配的内存大小至少为...对于malloc更多的说明可以在linux shell命令行中键入以下命令查看: man malloc 可以看见linux下malloc函数的详细使用手册 与malloc函数相关的函数 calloc(...memset(str,0,10); //如果不清空,申请的区域值是随机的,养成好习惯 strcpy(str,”happylife”); //使用strcpy特别注意拷贝的字符串长度<=10-1,即要预留字符串结束标志
三、查找指定键值范围 - set#equal_range 函数 1、函数原型 2、代码示例 一、查找大于等于指定值的元素 - set#lower_bound 函数 1、函数原型 在 C++ 语言中的...二、查找小于等于指定值的元素 - set#upper_bound函数 1、函数原型 在 C++ 语言中的 标准模板库 ( STL , Standard Template Library ) 中的 std...::set 集合容器 类提供了一个 upper_bound 成员函数 ; 该 upper_bound 函数返回一个迭代器对象 , 该 迭代器对象 指向在 set 有序集合中 第一个 大于 给定键值的元素...三、查找指定键值范围 - set#equal_range 函数 1、函数原型 在 C++ 语言中的 标准模板库 ( STL , Standard Template Library ) 中的 std::set...集合容器 类提供了一个 equal_range 成员函数 ; equal_range 函数返回一对迭代器 , 分别表示集合中与给定键值相等的元素范围 ; 这两个迭代器放在 对组 中 , 类型为 std
文章目录 Python 解释器 缩进 海象运算符 f字符串调试 类型 简单类型 列表类型 元组类型 字符串类型 字典类型 集合类型 流程控制 函数 函数的定义 函数的参数 函数的调用和返回 lambda...IDEL中启动解释器 PyCharm中启动解释器 点击底部Python Console 缩进 ---- 缩进是Python语言和其他语言非常不一样的地方,Python用缩进(4个空格)来表示程序块...复数complex 即数学概念里的复数,由实数和虚数组成 空None 类似于C/C++中的null,表示空。...列表类型 ---- 列表list是顺序存储数据的容器,类似C的数组,C++的vector。 定义:使用[]符号定义,中间元素用逗号隔开。...集合类型 ---- 集合是无序并唯一地存放容器元素的类型,可分为可变集合和不可变集合两种。 集合的创建: set()方法创建可变集合,frozenset()创建不可变集合。
,尚未确定类型。...所以我们在这个malloc函数之后可以给这段内存读写任意类型的数据。...下面是malloc函数的原型: #include void *malloc(size_t size); (3)void *类型的指针指向的内存是尚未确定类型的,因此我们后续可以使用强制类型转换强行将其转换为各种类型... *)0 // 这里对应C语言的情况 #endif 解释:C++的编译环境中,编译器预先定义了一个宏_cplusplus,程序中可以用条件编译来判断当前的编译环境是C++的还是C的...总结:'\0'用法是C语言字符串的结尾标志,一般用来比较字符串中的字符以判断字符串有没有到头;'0'是字符0,对应0这个字符的ASCII编码,一般用来获取0的ASCII码值;0是数字,一般用来比较一个int
缩进 Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。...并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。...根据PEP的规定,必须使用4个空格来表示每级缩进(不清楚4个空格的规定如何,在实际编写中可以自定义空格数,但是要满足每级缩进间空格数相等)。...for语句,遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。 while语句,当条件为真时,循环运行语句块。...这里的self相当于C++, Java里面的this变量,但是我们还可以使用任何其它合法的参数名,比如this 和 mine 等,self与C++,Java里面的this不完全一样,它可以被看作是一个习惯性的用法
,C++ 关键字) constant 常数(相对於 variable) 常量 constructor(ctor) 建构式 构造函数 (与class 同名的一种 member functions) ...C++ Primer 3/e, 12.3) 函数对象 function overloaded resolution 函式多载决议程序 函数重载解决(方案) functionality 功能、机能...C++ Primer 3/e, 12.3) 函数对象 function overloaded resolution 函式多载决议程序 函数重载解决(方案) functionality 功能、机能...魔术数字 魔法数 maintain 维护 维护 manipulator 操纵器(iostream 预先定义的一种东西) 操纵器 marshal 编列 列集 叁考 demarshal mechanism...overloaded function 多载化函式 重载的函数 overloaded operator 多载化运算子 被重载的操作符 overloaded set 多载集合 重载集合 override
\hello.py hello world PS C:\Users\mingm\Desktop\py> 完成输出hello world # 基础语法 ## 注释 注释以#开头 ## 行与缩进 用行与缩进代表代码块...,path # 从sys模块导入两个函数 即argv函数,以及path函数 print("path:" + path); # 输出函数 ## 命令行参数 使用-h参数,查看命令行的参数 PS C:\Users...()函数,和type()函数的区别在于会认为子类是一种父类的类型 ## 字符串 str = 'hello world'; print(str); print(str0:-2) PS C:\Users\...数学中的集合概念 student = {'tom', 'Jim', 'Mary', 'Tom'}; print(student); PS C:\Users\mingm\Desktop\py> python...\hello.py C C++ Perl PS C:\Users\mingm\Desktop\py> languages = "C", "C++", "Perl"; for x in languages
C++ 基本的输入输出 C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。...I/O 库头文件 下列的头文件在 C++ 编程中很重要。...头文件 函数和描述 该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。... 该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务。 该文件为用户控制的文件处理声明服务。...str is : Hello C++ C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。
C++ Primer 3/e, 11.4) 异常规范 exit 退离(指离开函式时的那一个执行点) 退出 explicit 明白的、明显的、显式 显式 export 汇出 引出、导出 expression...C++ Primer 3/e, 12.3) 函数对象 function overloaded resolution 函式多载决议程序 函数重载解决(方案) functionality 功能、机能...C++ Primer 3/e, 12.3) 函数对象 function overloaded resolution 函式多载决议程序 函数重载解决(方案) functionality 功能、机能...魔术数字 魔法数 maintain 维护 维护 manipulator 操纵器(iostream 预先定义的一种东西) 操纵器 marshal 编列 列集 叁考 demarshal mechanism...overloaded function 多载化函式 重载的函数 overloaded operator 多载化运算子 被重载的操作符 overloaded set 多载集合 重载集合 override
方法一:增加一个判断如何等于结束,不执行打印语句 for循环内嵌套了一个if函数,如果判断不等于结束才打印,反之不打印。 方法二:增加标志法!...本方法是直接使用一个sign变量作为标志,并且直接作为while循环的判断条件。如果标志为真执行循环,如果输入等于“结束”,标志循环重新赋值为假,则循环判断条件不通过,停止循环语句。...反之则执行while循环内的语句。 大家看一下缩进情况,本次代码的Print缩进与if相同,证明地位与if是一致的,print函数不在if内,则是属于while循环内的!...本代码的功能虽然与上一个是一致的,但是print的缩进与continue是一致的,则print是隶属于if函数的,if函数的结果决定是否执行print函数。...为了方便理解,我们调换一下print和continue函数的位置 总结一下就是,缩进位置相同,代表并列关系,如果缩进多一个,则是上一级的隶属关系。 就酱~下期继续聊聊while和列表和字典的那些事!
在python基础知识这个系列中,准备罗列出我学习python的一些基础知识,包括: 基本语法 控制语句 内置数据结构 模块和函数 字符串 文件处理 面向对象 异常处理 以前写机器学习算法喜欢使用Matlab...__age 函数名通常采用小写字母。 2、代码缩进和冒号 在python中,代码缩进和冒号都是一种语法,在Java,C/C++中有{}语法,在python中则是采用的缩进和冒号。...x + 1#缩进 else: y = y * 2 3、模块的导入 模块是指类或者函数的集合。...与Java中的import类似,在python中有两种导入方式: import ... from ... import ... 如要需要使用random模块中的rangrange函数。...from random import randrange num = randrange(1,9)#使用randrange函数 print num 注:这两种方式的区别,from ...导入的是整个模块
yaml文件介绍 yaml是一个专门用来写配置文件的语言。...yaml文件规则 区分大小写; 使用缩进表示层级关系; 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元素左侧对齐; 文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注...; 注释标识为# yaml文件数据结构 对象:键值对的集合(简称 "映射或字典"),键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔 数组:一组按序排列的值(简称 "序列或列表"),数组前加有...“-” 符号,符号与值之间需用空格分隔 纯量(scalars):单个的、不可再分的值(如:字符串、bool值、整数、浮点数、时间、日期、null等) None值可用null可 ~ 表示 Python的yaml...kbgz-v5.9.0-debug.apk',#APP文件路径 'appPackage':'com',#APP包名 'appActivity':'cui.setup.SplashActivity',#设置启动的Activity
C++ 基本的输入输出 图片 C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。...I/O 库头文件 下列的头文件在 C++ 编程中很重要。...头文件 函数和描述 该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。... 该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision),来声明对执行标准化 I/O 有用的服务。 该文件为用户控制的文件处理声明服务。...str is : Hello C++ C++ 编译器根据要输出变量的数据类型,选择合适的流插入运算符来显示值。
python语言基础 Ipython的一些特性 自省: 在变量、对象或者函数之后使用问号 ? ,可以很方便的显示对象信息,使用??可以显示函数的源码例如:?...Python语法基础 Python使用空白字符(tab和空格)来组织代码,而不是像其它语言,比如R、C++、JAVA和Perl那样使用括号。...(x) 冒号标志着缩进代码块的开始,冒号之后的所有代码的缩进量必须相同,直到代码块结束。...字典 字典可能是Python最为重要的数据结构。它更为常见的名字是哈希映射或关联数组。它是键值对的大小可变集合,键和值都是Python对象。...创建字典的方法之一是使用尖括号,用冒号分隔键和值{key:value}注意其中的key必须是可哈希性的 集合 集合可以使用set来定义集合的操作如下表 ? 列表、集合、字典推导式 未完待续。。。。
一、yaml文件介绍 yaml是一个专门用来写配置文件的语言。...1. yaml文件规则 区分大小写; 使用缩进表示层级关系; 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元素左侧对齐; 文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注...; 注释标识为# 2. yaml文件数据结构 对象:键值对的集合(简称 "映射或字典") 键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔 数组:一组按序排列的值(简称 "序列或列表") 数组前加有...“-” 符号,符号与值之间需用空格分隔 纯量(scalars):单个的、不可再分的值(如:字符串、bool值、整数、浮点数、时间、日期、null等) None值可用null可 ~ 表示 3、安装yaml...kbgz-v5.9.0-debug.apk',#APP文件路径 'appPackage':'com',#APP包名 'appActivity':'cui.setup.SplashActivity',#设置启动的Activity
YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。多用于api接口的定义。...键值对的集合,又称为映射(map)/ 哈希(hashes) / 字典(dictionary) 使用冒号(: )表示键值对,同一缩进的所有键值对属于一个map,示例: # YAML表示 age : 12...yaml.Unmarshal([]byte(str), &p) fmt.Println(p, err) // map[name:123 // 123] } 2.文本块 |:使用|标注的文本内容缩进表示的块...yaml.Unmarshal([]byte(str2), &p2) fmt.Println(p2, err) // map[value:hello // // ] } :使用 > 标注的文本内容缩进表示的块...set # 集合 !!omap,!!pairs # 键值列表或对象列表 !!seq # 序列,也是列表 !!
Python 解释器易于扩展,可以使用 C 或 C++(或者其他可以从 C 调用的语言)扩展新的功能和数据类型。Python 也可用作可定制化软件中的扩展程序语言。...Python 代码通常比同样功能的 C,C++,Java 代码要短很多,有如下几个原因: 1.高级数据类型允许在一个表达式中表示复杂的操作; 2.代码块的划分是按照缩进而不是成对的花括号; 3.不需要预先定义变量或参数...在这种编码方式中,世界上大多数语言的字符都可以同时用于字符串字面值、变量或函数名称以及注释中——尽管标准库中只用常规的 ASCII 字符作为变量或函数名,而且任何可移植的代码都应该遵守此约定。...允许重复的成员。 元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。 集合(Set)是一个无序和无索引的集合。没有重复的成员。 词典(Dictionary)是一个无序,可变和有索引的集合。...循环体是缩进的 :缩进是 Python 组织语句的方式。在交互式命令行里,你得给每个缩进的行敲下 Tab 键或者(多个)空格键。
而全排列刚好可以使用试探的方法去枚举所有中可能性。一个长度为n的序列或者集合。它的所有排列组合的可能性共有n!种。...回溯的流程如果从伪代码流程大致为这样: 递归函数: 如果集合所有元素被标记: 将临时储存添加到结果集中 否则: 从集合中未标记的元素中选取一个存储到临时集合中...回溯过程 用代码来实现思路也是比较多的,需要一个List去存储临时结果是很有必要的,但是对于原集合我们标记也有两种处理思路,第一种是使用List存储集合,使用过就移除然后递归下一层,递归完毕后再添加到原来位置...而理解起来也是非常简单,邻里互换的思路是从左向右进行考虑。 因为序列是没有重复的,我们开始将数组分成两个部分:暂时确定部分和未确定部分。开始的时候均是未确定部分,我们需要妥善处理的就是未确定部分。...在未确定部分的序列中,我们需要让后面未确定的每一位都有机会处在未确定的首位,所以未确定部分的第一个元素就要和每一个依次进行交换(包括自己),交换完成之后再向下进行递归求解其他的可能性,求解完毕之后要交换回来
领取专属 10元无门槛券
手把手带您无忧上云