Binary Predicate(双参判断式)的用途是:比较两个参数的特定属性 我们先建一个领域模型类: Person.h #ifndef _Domain_Models_Person_H_ #define _Domain_Models_Person_H_ #include <iostream> #include <string> #include <deque> using namespace std; class Person { private: string fn…
Predicate是一种特殊的辅助函数,它会返回Boolean,常常被用来作为排序或者查找准则. Predicate会有1个或者2个操作数. Unary Predicate(单参判断式) 例子: 我们先写一个算法,如下: MathUtil.h #ifndef _Math_Util_H_ #define _Math_Util_H_ using namespace std; class MathUtil { public: static bool isPrime(int number); }; #e…
之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及“二元”两种.如“-f 文件”可测试文件是否存在,运算符 -f 后接一个操作数“文件”,这种判断式称为“单元”:如“参数 1 -gt 参数2”可测试“参数1”的值是否大于“参数2”,运算符 -gt 的左右各接一个要比较的参数,这种判断式称为“二元”.大多数“单元”的判断式用于判断文件的相关属性,少数…
条件判断式的表示格式: 文件判断式: [root@andon ~]# [ -e /root/1 ] && echo yes || echo no #注意[]里面的空格,第一个命令为真打印yes,否则打印no yes [root@andon ~]# [ -f /root/1 ] && echo yes || echo no yes [root@andon ~]# [ -d /root/1 ] && echo yes || echo no no 文件权限判断式:…
利用 if .... then 单层.简单条件判断式 if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容: fi <==将 if 反过来写,就成为 fi !结束 if 之意! && 代表 AND : || 代表 or : [ "$yn" == "Y" -o "$yn" == "y" ]上式可替换为 [ "$yn" == "Y" ] ||…
善用判断式 利用 test 命令的测试功能 我要检查 /dmtsai 是否存在时,使用: [root@www ~]# test -e /dmtsai [root@www ~]# test -e /dmtsai && echo "exist" || echo "Not exist" Not exist <==结果显示不存在啊! 测试的标志 代表意义 1. 关於某个档名的『文件类型』判断,如 test -e filename 表示存在否 -e 该『…
原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_3.php 善用判断式 在第十一章中,我们提到过 $? 这个变量所代表的意义, 此外,也透过 && 及 || 来作为前一个命令运行回传值对於后一个命令是否要进行的依据.第十一章的讨论中,如果想要判断一个目录是否存在, 当时我们使用的是 ls 这个命令搭配数据流重导向,最后配合 $? 来决定后续的命令进行与否. 但是否有更简单的方式可以来进行『条件判断』呢?有…
条件判断式----利用 case ..... esac 判断 case  $变量名称 in   <==关键词为 case ,还有变量前有钱字号 "第一个变量内容")   <==每个变量内容建议用双引号括起来,关键词则为小括号 ) 程序段 ;;            <==每个类别结尾使用两个连续的分号来处理! "第二个变量内容") 程序段 ;; *)                  <==最后一个变量内容都会用 * 来代表所有其它值 不包含…
条件判断式----利用 if .... then ----多重 在同一个数据的判断中,如果该数据需要进行多种不同的判断时,应该怎么作?举例来说,上面的 sh06.sh 脚本中,我们只要进行一次 $yn 的判断就好 (仅进行一次 if ),不想要作多次 if 的判断. 此时你就得要知道底下的语法了: # 一个条件判断,分成功进行与失败进行 (else) if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的指令工作内容: else 当条件判断式不成立时,可以进行的指令工作内容: fi…
利用 test 指令的测试功能 要检测系统上面某些文件或者是相关的属性时,利用 test 这个指令来工作真是好用得不 得了, 举例来说,我要检查 /dmtsai 是否存在时,使用: [dmtsai@study ~]$ test -e /dmtsai 执行结果并不会显示任何讯息,但最后我们可以通过 $? 或 && 及 || 来展现整个结果.例如 [dmtsai@study ~]$ test -e /dmtsai && echo "exist" || ech…
前言 容器,置物之所也.就是存放数据的地方. array(数组).list(串行).tree(树).stack(堆栈).queue(队列).hash table(杂凑表).set(集合).map(映像表)…等等. 容器按照存储的方式可以分为:序列式容器和关联式容器 序列式容器:容器里面的数据可以进行排序,但是不会自动排序,可以使用算法进行排序 关联式容器:容器里面的数据不可排序,以键值对的形式存储 Vector 和数组类似,区别是数组大小是固定,Vector可以动态改变,不用但是越界的问题 动态…
问题: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1. 分析: 判断平衡二叉树,第一想法肯定是求出左右子树的深度,看是…
最近由于找工作需要,准备深入学习一下STL源码,我看的是侯捷所著的<STL源码剖析>.之所以看这本书主要是由于我过去曾经接触过一些台湾人,我一直觉得台湾人非常不错(这里不涉及任何政治,仅限个人感受),在技术上他们比较严谨,在为人处世上也非常谦虚,所以一些台湾的技术资料我觉得是值得一看的. 想要学习STL源码的设计,其实应该是从空间适配器(allocator)和迭代器(iterators)开始看起的,但是我没有对这两个部分做深入研究,主要原因是最近实在太忙,要写论文又要兼顾找工作,不能在这上面投…
AVL树 AVL树定义:红黑树是一颗二叉搜索树,特别的是一棵保持高度平衡的二叉搜索树 AVL树特点: 每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1 AVL树插入: 说明:新增节点的平衡因子是0,新增节点是右节点,父节点平衡因子+1,新增节点是左节点,父节点平衡因子-1 插入新增节点后,父节点平衡因子变为0,说明节点插入在较矮的子树上,平衡没被破坏,高度也没变化,直接插入无需做任何处理 插入新增节点后,父节点平衡因子变为+1或是-1,说明插入前节点的平衡因子是0,平衡没被破坏,但是高度…
1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ]  -- 推荐使用 例: [ -e /root/install.log ] 注意:中括号后面和前面需要有空格 2. 判断文件类型参数 1)-d 文件:判断该文件是否存在,并且是否为目录文件 2)-e 文件:判断文件是否存在 3)-f 文件:判断文件是否存在,并且是否为普通文件 4)-s 文件:判断文件是否存在,并且是否为非空 5)其他文件类型判断: -b 块设备文件:-c…
1.利用if ...then if [ 判断条件 ];then 指令 fi 实例一 Y/N: #!/bin/bash #Program: # This program shows "Hello World!" in your screen. #History: # // lzyer First release read -p "Please input (Y/N)? " yn if [ "${yn}" == "Y" ] ||…
1.利用 test 指令的测试功能 $ test -e hello.sh && echo "ok" || echo "no" ok 2.首先,判断一下,让使用者输入一个文件名,我们判断: 这个文件是否存在,若不存在则给予一个“Filename does not exist”的讯息,并中断程序: 若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regular file”或 “Filename is directory” 判断一…
格式一:test [参数] 判断内容格式二:[ [参数] 判断内容 ] 说明: a.格式二可以认为是格式一的缩写 b.格式二里中括号和内容之间要有空格 基于文件的判断-d 判断文件是否存在,并且是目录文件-e 判断文件是否存在-f 判断文件是否存在,并且是普通文件-l 判断文件是否存在,并且为符号连接文件[root@localhost temp]# test -e /etc/passwd[root@localhost temp]# echo $?0[root@localhost temp]# […
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as: a binary tree in which the depth of the two subtrees of every node never differ by more than 1. Example 1: Given the following tre…
993. Cousins in Binary Tree In a binary tree, the root node is at depth 0, and children of each depth knode are at depth k+1. Two nodes of a binary tree are cousins if they have the same depth, but have different parents. We are given the root of a b…
判断二叉搜索树的方法是: 中序遍历形成递增序列 //全局变量记录中序遍历产生的序列,因为要递归,所以要用全局变量 List<Integer> list = new ArrayList<>(); public boolean isValidBST(TreeNode root) { /* 这里要注意二叉搜索树的左子树的每个节点都要小于根节点,不只是左孩子,右子树也同样, 常犯的一个错误就是只是判断了左孩子和右孩子 正确方法是:中序遍历法,中序遍历之后的结果是一个递增序列 判断是否是二叉…
一:问题引出 #include <iostream> #include <map> #include <set> using namespace std; map<Set, int> MapTest; int main() { set<int> s1; set<int> s2 = set<int>(); //这里我们分别建立了两个集合对象 MapTest[s1] = ; cout << MapTest.coun…
Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range 本文是对Effective STL第45条的一个总结,阐述了各种查找算法的异同以及使用他们的时机. 首先可供查找的算法大致有count,find,binary_search,lower_bound,upper_bound,equal_range.带有判别式的如count_if,find_if或者binary_search的派别式版本,其…
stl binary search */--> pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola,"Bitstream Vera Sans", Courier New, helvetica; color:wheat; } .h3 { margin-left: 10pt; } *///--> stl binary search upper_bound http://msdn.micro…
Java8常用的内置函数式接口(一) 简介 JDK 1.8 API中包含了很多内置的函数式接口.有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口.对这些现成的接口进行实现,可以通过@FunctionalInterface 标注来启用Lambda功能支持. 此外,Java 8 API 还提供了很多新的函数式接口,来降低程序员的工作负担. 比如我们今天要了解到的四大常用的内置函数式接口:下表 序号 接口名 接口类型 1 Predicate 断言型接口…
Java8---函数式接口 Consumer---消费者(accept方法,Lambda与方法引用返回都是Consumer) Supplier---供给型(get方法,返回数据,与Optional可以联用) Predicate---谓词性(test方法,起到判断作用,) Function---功能性(apply方法,转换数据) 公司代码中看到过很多次Consumer和Function,一直搞不懂,今天做个整理,分成了匿名类,Lambda和方法引用 1.Consumer消费者 package Ja…
同学你好,这里有一份你的未读代码,等你查收. 这篇文章属于 Java 8 教程(LTS)系列教程,点击阅读更多相关文章. Predicate 函数接口同之前介绍的 Function 接口一样,是一个函数式接口,它可以接受一个泛型 <T> 参数,返回值为布尔类型.Predicate 常用于数据过滤,如过滤出集合中符合某个条件的元素. 源码:Java 8 中函数接口 Predicate. package java.util.function; import java.util.Objects; @…
一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不用多废话了. 今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如下的5种类型: (1) *delegate…
Function, Predicate的使用 Function用于把一种类型的对象转化为另一种类型的对象.Predicate用于判断某个对象是否符合一定条件. 一.Function和Functions 在java开发中, 我们经常需要对一些对象进行处理, 然后返回我们想要的结果, 比如说:对日期进行格式化, 获取字符串等等.在guava中, 我们可以通过实现Function接口来实现类似的需求, 如下: import com.google.common.base.Function; import…
今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景. Func,Action,Predicate全面解析 首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如下的5种类型: (1) *delegate TResult Func<TResult>(); (2)*delegate TResult Func<T1,TResult>(T1 arg1); (3) *delegate TResult Func&…