info

初学设计模式之组合模式

江枫思渺然 提交于 2019-12-04 02:37:38
组合模式的代码例子 1 #include<iostream> 2 #include<string> 3 #include<list> 4 using namespace std; 5 6 class Component 7 { 8 public: 9 virtual void show(){}; 10 11 }; 12 class leaf:public Component 13 { 14 private: 15 string info; 16 17 public: 18 leaf(string m_info) 19 { 20 info=m_info; 21 }; 22 void show() 23 { 24 cout<<info<<endl; 25 }; 26 27 }; 28 29 class ConcreteComponent:public Component 30 { 31 private: 32 string info; 33 list<Component*>m_list; 34 public: 35 ConcreteComponent(string m_info) 36 { 37 info=m_info; 38 }; 39 void add(Component* m_ComponentPtr) 40 { 41 m_list.push_back(m

Hadoop Python MapReduce

蹲街弑〆低调 提交于 2019-12-04 02:31:21
环境:Linux + hadoop python3 需要注意python不同版本的语法; 解决的问题:对文本文件进行词频统计; hadoop mapreduce计算流程 inputdata->HDFS ->datasplit ->map-(shuffer&sort)->reudce->output(HDFS) 任意文本文件 需要准备的脚本: map.py reduce.py run.sh (base) [root@pyspark mapreduce]# cat map.py import sys for line in sys.stdin: wordlist = line.strip().split(' ') for word in wordlist: print('\t'.join([word.strip(),'1'])) -------------------------------------------------------------------------- (base) [root@pyspark mapreduce]# cat reduce.py import sys cur_word = None sum = 0 for line in sys.stdin: wordlist =line.strip().split('\t') if len(wordlist)

Maven使用入门

寵の児 提交于 2019-12-04 02:23:28
Maven是Java中开发流行的项目管理工具,其他同类产品还有ant(见过工厂制造执行系统MES中使用ant打包)和gradle(Spring源码使用的gradle管理),目前来说maven是最广泛使用的,下面简单记录一下。 Maven安装和配置 maven可以管理项目的生命周期,包括编译、测试、打包,发布、部署的整个过程,其安装过程非常方便,下面是window下的安装方式。 (1)官网下载maven,地址: http://maven.apache.org/download.cgi ,目前最新已经支持3.6.2,如果是下载3.6版本以上的maven,需要保证至少JDK8的版本,并且环境变量保证JAVE_HOME指向jdk正确的安装目录,maven启动后会读取这个变量,如果没有配置JAVA_HOME,启动会出现问题。 # maven启动bat文件中需要读取JAVA_HOME变量@REM ==== START VALIDATION ==== if not "%JAVA_HOME%"=="" goto OkJHome for %%i in (java.exe) do set "JAVACMD=%%~$PATH:i" goto checkJCmd :OkJHome set "JAVACMD=%JAVA_HOME%\bin\java.exe" (2)下载完成后解压安装包即可

牛客练习赛48 C 小w的糖果 (数学,多项式,差分)

故事扮演 提交于 2019-12-04 02:21:19
牛客练习赛48 C 小w的糖果 (数学,多项式) 链接: https://ac.nowcoder.com/acm/contest/923/C来源:牛客网 题目描述 小w和他的两位队友teito、tokitsukaze准备为大家发点福利,到底发点什么呢?思考良久之后他们三个人准备了很多很多的糖果。他们让n个小朋友们排成一长排并且从左到右依次标号为1,2,3,4,5,6,7,8,9.....n。 三人每次发糖果,都是从某一个位置开始,只把糖果发给这个人以及这个人右侧的所有人。但是他们发糖果的规则有所不同。 1、如果某轮发糖果的是tokitsukaze,她将会从一个位置pos开始,依次向右给每个人1个糖果。 2、如果某轮发糖果的是teito,他将会从一个位置pos开始,依次向右,他将会给他碰到的第一个人发1个糖果,给他碰到的第二个人发2个糖果,给他碰到的第三个人发3个糖果...碰到的第k个人发k个糖果,直到向右走到编号为n的人为止。 3、如果某轮发糖果的是winterzz1,众所周知小w是个大方的人,所以他发的糖最多,他将会从一个位置pos开始,依次向右,它将会给他碰到的第一个人发1个糖果,给他碰到的第二个人发4个糖果,给他碰到的第三个人发9个糖果...碰到的第k个人发k2k^{2}k2个糖果直到向右走到编号为n的人为止。 发糖的福利一共进行了m轮

tomcat 日志详解

瘦欲@ 提交于 2019-12-04 02:12:40
1 tomcat 日志详解 1.1 tomcat 日志配置文件    tomcat 对应日志的配置文件 :tomcat目录下的/conf/logging.properties。    tomcat 的日志等级有: 日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)    tomcat 有五类日志 : catalina、localhost、manager、admin、host-manager   /conf/logging.properties 配置文件: 1 #可配置项(5类日志):catalina、localhost、manager、admin、host-manager 2 handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 4 5 #日志输出为输出到文件和输出到控制台 6 .handlers =

spring cloud 2.x版本 Gateway路由网关教程

五迷三道 提交于 2019-12-04 02:05:44
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server、eureka-client、eureka-ribbon和eureka-feign的实现。 参考 eureka-server eureka-client eureka-ribbon eureka-feign 概念 Spring Cloud Gateway是Spring Cloud的一个新项目,该项目是基于Spring5.0,Sprint Boot2.0和Project Reactor等技术开发的网关,它的目的是在微服务架构中提供一种简单有效的统一api路由管理方式。 Spring Cloud Gateway目标是要替代Netflix Zuul,其不仅提供统一的路由管理方式,还提供一套基于Fliter链的方式的网关其他功能,比如:限流、埋点、安全监控等。 名称术语 Route(路由):网关的基本模块,它有一个id、一个目标uri、一组断言和一组过滤器组成,如果断言为真,则路由匹配。 Predicate(断言):是一个java8的Predicate。输入类型是一个ServerWebExchange。可以使用它来匹配来自HTTP请求的内容。 Filter(过滤器):是org.springframework.cloud.gateway

自定义express中间件

爱⌒轻易说出口 提交于 2019-12-04 01:23:11
const http = require('http') class LikeExpress { constructor() { this.middleList = [] this.routes = { all: [], get: [], post: [] } } // 处理参数 register(path) { const info = {} const slice = Array.prototype.slice if (typeof path === 'string') { info.path = path info.stack = slice.call(arguments, 1) } else { info.path = '/' info.stack = slice.call(arguments, 0) } return info } use() { const info = this.register.apply(this, arguments) this.routes.all.push(info) } get() { const info = this.register.apply(this, arguments) this.routes.get.push(info) } post() { const info = this.register.apply(this,

mysql 主从复制刷新参数

依然范特西╮ 提交于 2019-12-04 01:11:10
mysql 复制的sync参数: master_info_repository = TABLE relay_log_info_repository = TABLE sync_master_info =1000 sync_relay_log =1000 sync_relay_log_info =1000 MySQL主从复制想必大家都会配置,但是每一层都完全理解可能不一定多。在mysql 从库保存有两个信息,分别:master_info_repository=( TABLE or File ) relay_log_info_repository = (TABLE or FILE) 在最开始的主从复制的时候,这两个参数分别是等于 FILE, maiter.info 文件保存: master_host,Master_log_name,master_log_pos, relay.info 文件保存着: Relay_log_name,relay_log_pos,Master_log_name,Master_log_pos 在5.6开始,master.info 和relay.info 支持存放到数据表中 对应 slave_master_info,slave_relay_log_info sync_master_info 参数 是控制 slave_master_info 表的更新频

[AGC040B]Two Contests

只愿长相守 提交于 2019-12-04 01:05:12
Description 给出若干条线段 \((L[i], R[i])\) ,把他们分成两个非空的集合,最大化集合内线段交的和。 \(n\le 10 ^ 5\) Solution 考虑最小的一个右端点 p 和最大的一个左端点 q 。 讨论: p 和 q 在同一集合内,那么选择一条除了这两条外最长的线段单独一个集合,剩下的和 p, q 一起一个集合。 p 和 q 不在同一集合内,那么考虑令 \(a_i = max(p - l_i+1, 0), b_i = max(r_i - q + 1, 0)\) , 问题就转换成了把 {1,2...n} 划分成两个集合 \(S, T\) ,并且最大化 \(min\{a_i\} + min\{b_j\}\) , \(i\in S, j \in T\) ,可以把 \((a_i, b_i)\) 按 \(a_i\) 从大到小排序,然后 \(T\) 选的就是一段后缀。 code #include <cstdio> #include <cstring> #include <vector> #include <iostream> #include <algorithm> using namespace std; #define End exit(0) #define LL long long #define mp make_pair #define SZ(x) (

从0到1,Python Web开发的进击之路

痞子三分冷 提交于 2019-12-04 00:44:58
本文将以个人(开发)的角度,讲述如何从零开始,编写、搭建和部署一个基于Python的Web应用程序。 从最简单的出发点来剖析,一个web应用后端要完成的工作抽象出来无非就是3点: 接收和解析请求。 处理业务逻辑。 生产和返回响应。 对于初学者来说,我们关心的只需这些步骤就够了。要检验这三个步骤,最简单的方法是先写出一个hello world。 request->"hello world"->response python有许多流行的web框架,我们该如何选择呢?试着考虑三个因素: 易用:该框架是面对初学者友好的,而且具有健全的文档,灵活开发部署。例如flask,bottle。 效率:该框架适合快速开发,拥有丰富的轮子,注重开发效率。例如django。 性能:该框架能承载更大的请求压力,提高吞吐量。例如falcon,tornado,aiohttp,sanic。 根据场景使用合适的框架能少走许多弯路,当然,你还能自己写一个框架,这个下面再说。 对于缺乏经验的人来说,易用性无疑是排在第一位的,推荐用flask作为python web入门的第一个框架,另外也推荐django。 首先用virtualenv创建python的应用环境,为什么用virtualenv呢,virtualenv能创建一个纯净独立的python环境,避免污染全局环境。(顺便安利kennethreitz大神的 pipenv