两种语言实现设计模式(C++和Java)(十九:访问者模式)
在现实生活中,有些集合对象中存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式。例如,公园中存在多个景点,也存在多个游客,不同的游客对同一个景点的评价可能不同;医院医生开的处方单中包含多种药元素,査看它的划价员和药房工作人员对它的处理方式也不同,划价员根据处方单上面的药品名和数量进行划价,药房工作人员根据处方单的内容进行抓药。 UML: Visitor Pattern 优缺点: 访问者(Visitor)模式是一种对象行为型模式,其主要优点如下。 扩展性好。能够在不修改对象结构中的元
python 分析 知乎粉丝数据
昨天花了一下午写了一个小爬虫,用来分析自己的粉丝数据。这个真好玩!今天帮了群里好多大V也爬了他们的数据。运行速度:每分钟5千粉丝以上。暂时先写成这样,这两天要准备补考,没有时间继续玩这个。 下次要改进的地方:1、多线程 2、scrapy 3、深度数据 4、分布式爬虫 希望实现的功能: 1、地区、教育程度、注册时间、送粉识别、颜值检测 2、导出 h5超秀的界面 和完美的 xlsx 数据 3、对内容提出建议 4、对接微信后台实现自动化 下面是源码,经2019年8月21日测试可用: from sel
递归求兔子数列第n项的值
1 #include <iostream>
2 using namespace std;
3 int f(int n)//递归f数列的第n项
4 {
5 int x=0,y=1,z;
6 if(n==1||n==2)
7 {
8 return n-1;
9 }
10 else
11 {
12 return f(n-1)+f(n-2);
13 }
14 }
15
Z - New Year Tree CodeForces - 620E 线段树 区间种类 bitset G. Yash And Trees 线段树 bitset
Z - New Year Tree CodeForces - 620E 这个题目还没有写,先想想思路,我觉得这个题目应该可以用bitset, 首先这个肯定是用dfs序把这个树转化成线段树,也就是二叉树。 然后就是一个区间修改和区间查询。这个区间查询时查询这个区间的种类数。 这个之前写过几个题目也是查区间种类数的 G. Yash And Trees 线段树 bitset 20190709 暑训 区间种类数 莫队的学习 莫队和权值线段树应该都是不支持修改的,所以这个题目用不上, 然后就是这个高端压
Elasticsearch的数据组织
数据组织主要从以下二方面着手 逻辑设计:文档、类型、索引 物理设计:节点、分片 倒排索引 前言 逻辑设计:我们把elasticsearch与关系型数据库做个客观对比 Relational DB Elasticsearch 数据库(database) 索引(indices) 表(tables) 类型(types) 行(rows) 文档(documents) 字段(columns) 字段(fields) elasticsearch(集群)中可以包含多个索引(数据库),每个索引
hdu 2389 Rain on your Parade (Hopcroft-Karp 求二分图最大匹配)
题意: 给出m个点和n个人,每个人有一个速度,可以跑向一个点,但每个点只能被一个人占领 思路: 每个人和每个点都建一个点,如果人能跑到点则连一条边,求最大匹配即可. #include<bits/stdc++.h>
#define ll long long
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = 3050;
int uN,vN,t;
struct point{
int x,y;
point
OpenCv 015---图像ROI与ROI操作 OpenCv 009---色彩空间与色彩空间转换
1 前备知识 null 2 所用到的主要OpenCv API skip 3 程序代码 #include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src = imread("G:\\CVworkstudy\\program_wwx\\Research society140\\
Python日期存入elasticsearch的坑
今天在消费kafka数据到elasticsearch(以下简称es)中的时候遇到一个问题,也是一个坑,折腾了半天,后来发现得来全不费工夫,全是白忙活啊!!! 问题如下: kafka数据中有一个字段是时间字符串,格式为:‘2018-05-31 16:33:45:234’ 为了方便以后根据日期检索数据,es里已将该字段设置为date类型, 接下来便开始了str到date转换的艰辛之路...... 尝试过的解决办法如下: 1、使用datetime将str转换为datetime对象 输出结果如下: 好
Windows 10 下使用 MinGW-w64 编译 OpenCV-4.1.1
1. 下载安装 CMake 2. 下载安装 MinGW-w64,假设安装于 X:\path\to\MinGW-w64 此处注意选择 POSIX 版本而非 Win32 版本,因为 OpenCV 调用了标准库中的 Mutex 库,而该库在 Win32 版本中未被实现。 3. 配置环境变量; 4. 下载 OpenCV 源码并将其放置在 Y:\path\to\opencv\ 5. 在任意地方新建文件夹 Z:\path\to\opencv-build-mingw-w64\ 6. 在该目录内运行 cmak
Django跨域问题
什么是跨域 '''
通常情况下,A网页访问B服务器资源时,不满足以下三个条件其一就是跨域访问
1. 协议不同
2. 端口不同
3. 主机不同
''' Django解决跨域 '''
安装django-cors-headers模块
在settings.py中配置
# 注册app
INSTALLED_APPS = [
...
'corsheaders'
]
# 添加中间件
MIDDLEWARE = [
...
'corsheaders.middleware.Cors
用 LinkedList 实现一个 java.util.Stack 栈
用 LinkedList 实现一个 java.util.Stack 栈 import java.util.LinkedList;
public class Stack<E> {
private LinkedList<E> storage = new LinkedList<>();
public E push(E e) {
storage.addFirst(e);
return e;
}
public E peek() {
java 跳出多重循环
1 public class Main {
2
3 public static void main(String[] args) {
4 System.out.println("start");
5 flag: //标志位
6 for(int i=0;i<100;i++) {
7 for(int j=0;j<100;j++) {
8 for(int k
logstash 写入数据到elasticsearch 索引相差8小时解决办法
问题说明 Logstash用的UTC时间, logstash在按每天输出到elasticsearch时,因为时区使用utc,造成每天8:00才创建当天索引,而8:00以前数据则输出到昨天的索引 # 使用logstash写入elasticsearch时的配置 output { elasticsearch { id => "logstash-%{+YYYY.MM.dd}" } } 1 2 3 4 5 6 logstash和elasticsearch是按照UTC时间的,kibana却是按照正常你所在
btrfs 文件系统
创建命令:mkfs.btrfs -L name /dev/sdb 查看命令:btrfs filesystem show 系统挂载:mount -t btrfs /dev/sdb /mydata/ 分区大小修改:btrfs filesystem resize -10G|+10G|max /mydata/ 查看文件系统使用:btrfs filesystem df /mydata 向文件系统添加新硬盘:btrfs device add /dev/sdd /mydata/ 多硬盘数据均衡:btrfs
在VMware下安装ubantu18.04
一:安装虚拟机 1:打开VMware,在窗口菜单中选择->文件->新建虚拟机 2:进入到欢迎向导,选择自定义安装,然后选择下一步 选择服务器操作系统和镜像版本 填写虚拟机名称和虚拟机安装的位置: 选择虚拟机的内存: 选择虚拟机网络连接类型: 选择分配虚拟机磁盘大小,也可以根据以后的需要在虚拟机的配置中设置磁盘大小。 点击CD/DVD引入镜像文件 二:开启虚拟机,安装ubuntu系统 1:进入到安装欢迎页面,根据个人需要选择系统语言,然后点击install Ubuntu 选择现在安装后弹出的提示
CF1204E (dp+数学)
比赛的时候一直在想枚举一个最大值然后算有多少个排列的最大值为枚举的值 并且膜数还看错了 于是GG 我现在才知道可以一起考虑的……还是菜…… 考虑\(dp[i][j]\)表示有\(i\)个\(1\),\(j\)个\(-1\)时的答案 显然它可以从\(dp[i-1][j]\)和\(dp[i][j-1]\)转移过来 在\(dp[i-1][j]\)表示的序列开头加一个\(1\),最大前缀和也会+1。而这样的序列一共有\(C^{i+j-1}_j\)种,所以\(dp[i-1][j]\)对\(dp[i][j
阶段3 3.SpringMVC·_07.SSM整合案例_06.ssm整合之编写MyBatis框架
需要先搭建Mybits的环境。 用Mybits的注解的方式。把两个方法的sql语句写完 SqlMapConfig.xml resources下新建xml文档 把约束粘贴过来 两步操作 环境标签叫做environments 选中标签后自动生成 配置驱动 地址 账号和密码 因为我们现在用注解了,所以mapperl里面用class属性。class配置的应该是dao的全路径 复制dao的全路径 写包的名字的方式。用包名的方式 直接扫描包下面的所有dao文件 新建测试类测试Mybits Account的
新人报道献礼:关于boost property_tree的一些探讨
本人最近工作中要用到c++解析json的方法,故在网上查了不少文章进行学习。 先发点牢骚:找了很多文章,但感觉多数内容雷同,深度不够,缺乏自己的分析和稍微深入一些的见解。 然后要感谢下面这2篇文章的作者: http://www.voidcn.com/article/p-smrzeuyb-bud.html http://einverne.github.io/post/2016/01/boost-learning-note-7.html 花了大约2-3个小时的时间仔细学习了一下,改写出了下面的一段
美团机器学习风控团队(面试)
时间:20190821 方式:电话 岗位:机器学习 一面: 1.介绍下你自己 2.讲下研究生课题的具体实现,这里面扣了很多细节 3.SVM与神经网络的联系和区别 4.L1,L2对比和联系,已经理论推导 5.样本不平衡的处理方式 6.GBDT与XGboost算法的区别,详细扣了xgboost 7.决策树、随机森林和XGboost之间的联系和区别 8.kmeans的优缺点 9.风控领域了解吗?了解啥?由于小姐姐是风控团队的,问了很多风控的知识,要我回去好好补补风控的东西。 10.手写过神经网络的推
今日推荐
周排行