namespace

Educational Codeforces Round 12

[亡魂溺海] 提交于 2020-03-03 05:23:18
665A - Buses Between Cities 20171129 奇奇怪怪的小数学题...推推式子就好了,边界情况比较蛋疼 #include<stdlib.h> #include<stdio.h> #include<math.h> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int a,ta,b,tb,h,m,t; int main() { scanf("%d%d%d%d",&a,&ta,&b,&tb);a*=2,ta*=2,b*=2,tb*=2; scanf("%d:%d",&h,&m),t=60*h+m-300;t*=2; printf("%d\n",min(t+ta-1,2278)/b-(t-tb+1<=-1?-b:t-tb+1)/b); return 0; } View Code 665B - Shopping 20171129 按题意模拟即可 #include<stdlib.h> #include<stdio.h> #include<math.h> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n,m,x,k,a,p[101],ans;

Python类的创建过程

为君一笑 提交于 2020-03-02 20:53:52
类的创建过程 以下说的类指的类本身,例如以下代码: class Foo: def __init__(self): pass 则指的 Foo 的创建过程,而不是 Foo 的实例。 1. 解析 MRO 记录(Resolving MRO entries) 根据 MRO 规则解析继承关系 2. 确定元类(Determining the appropriate metaclass) 查找元类的过程遵循以下规则: 如果没有基类且没有指定 metaclass ,则使用 type() 如果指定了 metaclass 且它不是 type() 的实例,则直接使用 metaclass 如果指定了 type() 实例的 metaclass 或者有基类,(the most derived metaclass is used. ??) 3. 准备命名空间(Preparing the class namespace) 当元类确定后,类的命名空间也可以确定了。 如果元类有 __prepare__ 属性,则 namespace = metaclass.__prepare__(name, bases, **kwargs) ,否则命名空间会初始化为有序的空map(empty ordered mapping.) 4. 执行 Class 内语句(Executing the class body) 类内的语句通过 exec

Python类的创建过程

时光总嘲笑我的痴心妄想 提交于 2020-03-02 20:53:32
类的创建过程 以下说的类指的类本身,例如以下代码: class Foo: def __init__(self): pass 则指的 Foo 的创建过程,而不是 Foo 的实例。 1. 解析 MRO 记录(Resolving MRO entries) 根据 MRO 规则解析继承关系 2. 确定元类(Determining the appropriate metaclass) 查找元类的过程遵循以下规则: 如果没有基类且没有指定 metaclass ,则使用 type() 如果指定了 metaclass 且它不是 type() 的实例,则直接使用 metaclass 如果指定了 type() 实例的 metaclass 或者有基类,(the most derived metaclass is used. ??) 3. 准备命名空间(Preparing the class namespace) 当元类确定后,类的命名空间也可以确定了。 如果元类有 __prepare__ 属性,则 namespace = metaclass.__prepare__(name, bases, **kwargs) ,否则命名空间会初始化为有序的空map(empty ordered mapping.) 4. 执行 Class 内语句(Executing the class body) 类内的语句通过 exec

k8s 安装 prometheus 过程记录

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-02 07:32:28
k8s 安装 prometheus 过程记录 https://www.cnblogs.com/dudu/p/12146344.html 开始以为只要安装 prometheus-operator 就行了。 git clone https://github.com/coreos/prometheus-operator.git cd prometheus-operator sed 's/namespace: default/namespace: monitoring/g' bundle.yaml | kubectl apply -f - 安装后发现只有一个 prometheus-operator pod 。 $ kubectl get pods -n monitoring NAME READY STATUS RESTARTS AGE prometheus-operator-99dccdc56-qq5lm 1/1 Running 0 20m 这时才发现真正要安装的是 kube-prometheus 。 git clone https://github.com/coreos/kube-prometheus.git cd kube-prometheus kubectl create -f manifests/setup && \ until kubectl get

C++ 第3章 函数

非 Y 不嫁゛ 提交于 2020-03-01 21:01:07
3.1 函数的定义与使用 3.1.1 函数的定义 函数是面向对象程序设计中,对功能的抽象 类型标识符 函数名(形式参数表) { 语句序列 } 3.1.2 函数的调用 调用前先声明函数原型: 类型标识符 被调用函数名 (含类型说明的形参表); 调用形式 函数名(实参列表) 嵌套调用:函数可以嵌套调用,但不允许嵌套定义。 递归调用:函数直接或间接调用自身 例: #include <iostream> using namespace std; //计算x的n次方 double power (double x, int n); void main(void) { cout << "5 to the power 2 is "<< power(5,2) << endl; } double power (double x, int n) { double val = 1.0; while (n--) val = val*x; return(val); } 运行结果:5 to the power 2 is 25 由于函数power 的定义位于调用之后,所以需要先对函数原型加以声明。 例: 输入一个8位二进制数,将其转换为十进制数输出。1101 2 = 1(2 3 ) + 1(2 2 ) + 0(2 1 ) + 1(2 0 ) = 13 10 所以,如果输入1101,则应输出13 #include

C语言指针用法详解(二) 指针的算术运算

…衆ロ難τιáo~ 提交于 2020-03-01 12:24:00
例题1: Question : char a[20]; int *ptr = (int * )a; ptr++ Practice : Reason : #include <bits/stdc++.h> using namespace std; int main() { char a[20]; int *ptr = (int * )a;/// 强制类型转换不会改变a的类型 /*** ** 吾日三醒指针:指针的类型,指针指向的类型,指针指向哪里 ** ptr 的类型是 int* , 指向的类型是 int , 指向整形变量 a ***/ cout<<" befor : " << ptr<<endl; ptr++; cout<< " sizeof (ptr) "<< sizeof(ptr)<<endl; /*** ** ptr 类型是指针,指针的自增,当然是增加自身的大小了 ** sizeof(ptr) 为4, ptr 增加4 ***/ cout<<" after : "<<ptr<<endl; } 例题2: Question : int arr[20] = {0}; int *ptr = arr; for (int i=0; i<20; i++) { (*ptr)++; ptr++; } Practice : Reason : #include <bits/stdc++.h> using

【C++】命名空间(namespace)详解

让人想犯罪 __ 提交于 2020-02-29 22:27:18
一、为什么使用命名空间 考虑一种情况,当我们有两个同名的人,Zara,在同一个班里。当我们需要对它们进行区分我们必须使用一些额外的信息和它们的名字,比如这个区域,如果它们生活在不同的区域或者它们的母亲或父亲的名字,等等。 在您的C++应用程序中也会出现同样的情况。例如,您可能正在编写一些具有名为xyz()函数的代码,并且还有另一个可用的库,它也具有相同的xyz()函数。现在编译器无法知道您在代码中引用的xyz()函数的哪个版本。 名称空间(namespace)被设计来克服这个困难,并被用作额外的信息来区分类似的函数、类、变量等等,它们在不同的库中具有相同的名称。使用名称空间,您可以定义定义名称的上下文。本质上,名称空间定义了一个范围。 二、命名空间的定义 在C语言中只有一个全局作用域: 1.C语言中所有的全局标识符共享一个作用域 2.标识符之间可能发生冲突 C++中提出了命名空间的概念: 1.命名空间将全局作用域分成不同的部分, 2.不同命名空间中的标识符可以同名而不会发生冲突 3.命名空间可以发生嵌套 4.全局作用域也叫默认命名空间 语法: namespace Name { namespace Internal { / * . . . * / } / * . . . * / } C++命名空间的使用: 使用整个命名空间:using namespace name;

kubernetes容器编排系统介绍

a 夏天 提交于 2020-02-29 09:13:45
版权声明:本文由turboxu原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/152 来源:腾云阁 https://www.qcloud.com/community Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到的经验与教训。 Kubernetes提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。当前Kubernetes支持GCE、vShpere、CoreOS、OpenShift、Azure等平台,除此之外,也可以直接运行在物理机上.kubernetes是一个开放的容器调度管理平台,不限定任何一种言语,支持java/C++/go/python等各类应用程序 。 kubernetes是一个完备的分布式系统支持平台,支持多层安全防护、准入机制、多租户应用支撑、透明的服务注册、服务发现、内建负载均衡、强大的故障发现和自我修复机制、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力,完善的管理工具,包括开发、测试、部署、运维监控,一站式的完备的分布式系统开发和支撑平台。 一. 系统架构

centos7下安装docker(10容器底层--cgroup和namespace)

大憨熊 提交于 2020-02-29 07:10:51
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup可以设置进程使用CPU,内存和IO资源使用的限额。我们之前学习的通过-m,--memory-swap,-c,--blkio-weight就是通过cgroup实现的。那么cgroup到底是什么样子的呢? 可以在 /sys/fs/cgroup 里面找到,例如: 我们运行一个容器,我们设置的cpu的权重是700 我们进入/sys/fs/cgroup/cpu/docker目录下的相应的容器的ID的目录里面,看cpu.shares,可以看到我们设置的权重是700 同样的我们进入/sys/fs/cgroup/memory/docker/中大概是memory.limit_in_bytes这个文件是容器内存的大小 同样的我们进入/sys/fs/cgroup/blkio/docker/中,blkio.weight这个文件是Block IO的权重文件 我们可以在以上的文件中,查看或者更改容器资源的大小 2.namespace 我们运行的每一个容器,都像是一个新的操作系统一样,都有文件系统,网卡等资源;那网卡来说,每个容器都会认为自己有一块独立的网卡,即使Host主机实际只有一块网卡资源

实现容器的底层技术

一世执手 提交于 2020-02-29 07:04:52
https://www.cnblogs.com/CloudMan6/p/7045784.html 为了更好地理解容器的特性,本节我们将讨论容器的底层实现技术。 cgroup 和 namespace 是最重要的两种技术。cgroup 实现资源限额, namespace 实现资源隔离。 cgroup cgroup 全称 Control Group。Linux 操作系统通过 cgroup 可以设置进程使用 CPU、内存 和 IO 资源的限额。相信你已经猜到了:前面我们看到的 --cpu-shares 、 -m 、 --device-write-bps 实际上就是在配置 cgroup。 cgroup 到底长什么样子呢?我们可以在 /sys/fs/cgroup 中找到它。还是用例子来说明,启动一个容器,设置 --cpu-shares=512 : 查看容器的 ID: 在 /sys/fs/cgroup/cpu/docker 目录中,Linux 会为每个容器创建一个 cgroup 目录,以容器长ID 命名: 目录中包含所有与 cpu 相关的 cgroup 配置,文件 cpu.shares 保存的就是 --cpu-shares 的配置,值为 512。 同样的,/sys/fs/cgroup/memory/docker 和 /sys/fs/cgroup/blkio/docker 中保存的是内存以及