const

MySQL 性能优化神器 Explain 使用分析

非 Y 不嫁゛ 提交于 2020-03-17 07:01:16
简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如: EXPLAIN SELECT * from user_info WHERE id < 300; 准备 为了接下来方便演示 EXPLAIN 的使用, 首先我们需要建立两个测试用的表, 并添加相应的数据: CREATE TABLE `user_info` ( `id` BIGINT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL DEFAULT '', `age` INT(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `name_index` (`name`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 INSERT INTO user_info (name, age) VALUES ('xys', 20); INSERT INTO user_info (name, age) VALUES ('a', 21); INSERT INTO user_info (name, age)

C++中“强制转换”的四大天王

只谈情不闲聊 提交于 2020-03-17 06:32:28
RTTI RTTI概念 RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型。 RTTI机制的产生 为什么会出现RTTI这一机制,这和C++语言本身有关系。和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象程序设计中多态性的要求,C++中的指针或引用(Reference)本身的类型,可能与它实际代表(指向或引用)的类型并不一致。有时我们需要将一个多态指针转换为其实际指向对象的类型,就需要知道运行时的类型信息,这就产生了运行时类型识别的要求。和Java相比,C++要想获得运行时类型信息,只能通过RTTI机制,并且C++最终生成的代码是直接与机器相关的。 我对Java的运行时类型识别不是很熟悉,所以查了一下相关资料:Java中任何一个类都可以通过反射机制来获取类的基本信息(接口、父类、方法、属性、Annotation等),而且Java中还提供了一个关键字,可以在运行时判断一个类是不是另一个类的子类或者是该类的对象,Java可以生成字节码文件,再由JVM(Java虚拟机)加载运行,字节码文件中可以含有类的信息。 typeid和dynamic_cast操作符 RTTI提供了两个非常有用的操作符

AtCoder Grand Contest 035

心不动则不痛 提交于 2020-03-17 06:16:00
传送门 \(A\) 因为有 \(a_1\oplus a_2\oplus a_3=0,a_2\oplus a_3\oplus a_4=0\) ,所以有 \(a_1=a_4\) ,或者写成 \(a_{i}=a_{i+3}\) 于是合法的情况只有以下三种 1.全是 \(0\) 2. \({2n\over 3}\) 个 \(x\) 和 \({n\over 3}\) 个 \(0\) 3. \(x,y,z\) 各 \({n\over 3}\) 个,且 \(x\oplus y\oplus z=0\) const int N=1e5+5; int n,a[N],b[N],cnt[5],m; int main(){ scanf("%d",&n); fp(i,1,n)scanf("%d",&a[i]),b[i]=a[i]; sort(b+1,b+1+n),m=unique(b+1,b+1+n)-b-1; fp(i,m+1,3)b[i]=-1; fp(i,1,n){ if(a[i]==b[1])++cnt[1]; if(a[i]==b[2])++cnt[2]; if(a[i]==b[3])++cnt[3]; } if(m==1&&b[1]==0)return puts("Yes"),0; if(m==2&&(cnt[2]==(cnt[1]<<1)&&b[1]==0))return puts("Yes")

AtCoder Grand Contest 035

妖精的绣舞 提交于 2020-03-17 06:14:21
Preface Atcoder的题都好劲啊,都是我做不动的 计数 与 构造 就当锻炼自己的思维能力了(基本都是bzt教的) A - XOR Circle bzt说这题数据太水了只要判一下所有数异或值是否为 \(0\) 就能过,但我们要考虑正解(数据太弱我也不知道到底对不对) 首先我们发现放数的时候必然会出现 \(a_1\to a_1\operatorname{xor} a_2\to a_2\to a_1\) 的情况,即三个数一组的循环 那么我们可以得到一个普遍的结论:只有三种数且每种 数字个数相同 然后你直接提交就会WA掉,原因是忽略了 \(0\) 的情况,因此我们要加上下面两个特判: 全为 \(0\) 时显然合法 \(3|n\) 且只有两种数(一种是 \(0\) ), \(0\) 的个数为 \(\frac{n}{3}\) ,非零的那个数个数为 \(\frac{2n}{3}\) 。假设非零数为 \(x\) ,显然可以放置成 \(x\to 0\to x\to x\to 0\to x\to \cdots x\to 0\to x\) #include<cstdio> #include<cctype> #include<map> #include<utility> #define RI register int #define CI const int& #define Tp

RTTI运行时类型识别

一曲冷凌霜 提交于 2020-03-17 05:40:36
RTTI是Runtime Type Identification的缩写,是“运行时类型识别”的意思。面向对象的编程语言,象C++, Java ,Delphi都提供了对RTTI的支持。 本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI。本文还将详细描述两个重要的 RTTI 运算符的使用方法,它们是 typeid 和dynamic_cast。 1. typeid的用法 1.1type_info类 typeid 的结果是 const type_info&。所以下面先对type_info类作下介绍: class type_info { public: virtual ~type_info(); size_t hash_code() const _CRTIMP_PURE bool operator==(const type_info& rhs) const; _CRTIMP_PURE bool operator!=(const type_info& rhs) const; _CRTIMP_PURE int before(const type_info& rhs) const; _CRTIMP_PURE const char* name() const; _CRTIMP_PURE const char* raw

什么是外部链接和内部链接?

半世苍凉 提交于 2020-03-16 21:47:37
某厂面试归来,发现自己落伍了!>>> 我想了解外部链接和内部链接及其区别。 我也想知道 除非默认声明为 extern ,否则默认情况下 const 变量内部链接。 #1楼 编写实现文件( .cpp , .cxx 等)时,编译器会生成 翻译单元 。 这是实现文件中的目标文件,以及 #include 在其中的所有标头。 内部链接 仅指 翻译单元范围内的 所有内容。 外部链接 是指存在于特定翻译单元之外的事物。 换句话说, 可以通过整个程序访问 ,这是所有翻译单元(或目标文件)的组合。 #2楼 正如 dudewat所说, 外部 链接意味着在整个程序中都可以访问符号(函数或全局变量),而 内部 链接意味着只能在一个 翻译单元中对其进行 访问。 您可以使用 extern 和 static 关键字显式控制符号的链接。 如果未指定的联动是默认键是 extern 用于非 const 符号和 static (内部)为 const 的符号。 // in namespace or global scope int i; // extern by default const int ci; // static by default extern const int eci; // explicitly extern static int si; // explicitly static // the

C#做外挂的常用API

妖精的绣舞 提交于 2020-03-16 15:02:55
使用系统; 使用System.Collections.Generic; 使用System.Text; 使用System.Runtime.InteropServices; //这个肯定要的 命名空间WindowsApplication1 { 类win32API { public const int OPEN_PROCESS_ALL = 2035711; public const int PAGE_READWRITE = 4; public const int PROCESS_CREATE_THREAD = 2; public const int PROCESS_HEAP_ENTRY_BUSY = 4; public const int PROCESS_VM_OPERATION = 8; public const int PROCESS_VM_READ = 256; public const int PROCESS_VM_WRITE = 32; 私有const int PAGE_EXECUTE_READWRITE = 0x4; 私有常量int MEM_COMMIT = 4096; 私有const int MEM_RELEASE = 0x8000; 私有const int MEM_DECOMMIT = 0x4000; 私有const int PROCESS_ALL_ACCESS =

≡放荡痞女 提交于 2020-03-16 08:31:15
树用递归体现: 树由 n 个节点组成有限合集。   当 n = 0 的时候是空树    当 n > 0 的时候除根节点其他的节点可以划分为 m 个互不相交的有限集合,每个集合称为子树 度:一个节点拥有子树的数目称为节点的度,度为零的节点叫叶节点,度不为零叫分支节点。树的度为所有度节点中度的最大值。 树的前驱和后继:节点的后继叫孩子,具有相同父亲的节点叫兄弟,节点的前驱叫父亲。 树的高度:是树中节点最大层次 有序树:树中节点从左到右是有序的,且子树不能互换位置 深林:由n棵互不相交的树组成的集合 节点: 树中的节点包含了一个数据和指向其他节点的指针 线性非线性:从根节点到叶节点是非线性的,从叶节点到根节点是线性的(等同链表) 树的表示方法: 双亲孩子表示法:   a. 每个节点都有指向父亲的指针   b. 每个节点都有指向若干个孩子的指针 #ifndef GTREENODE_H #define GTREENODE_H #include"Tree.h" #include"LinkList.h" namespace DSL { template <typename T> class GTreeNode : public TreeNode<T> { public: LinkList<GTreeNode<T>*> m_GTreeNode; static GTreeNode<T>*

Qt 添加 QtNetwork 库文件

♀尐吖头ヾ 提交于 2020-03-16 05:45:55
Qt应用程序默认没有加QtNetwork库。如下图: 在开发过程中,因处理业务需要手动添加QtNetwork库。根据常见情况分为以下两种: 【1】若使用QTCreator开发程序 在工程的pro文件中添加:QT += network 【2】若使用VS + QT开发程序 本地环境VS2017 + QT5.9.2 编译错误提示如下: 1 error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QNetworkRequest::QNetworkRequest(class QUrl const &)" (__imp_??0QNetworkRequest@@QEAA@AEBVQUrl@@@Z),该符号在函数 "public: void __cdecl UPCLoginService::execute(void)" (?execute@UPCLoginService@@QEAAXXZ) 中被引用 2 error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QNetworkRequest::~QNetworkRequest(void)" (__imp_??1QNetworkRequest@@QEAA@XZ),该符号在函数 "public: void _

【套题】qbxt国庆刷题班D2

冷暖自知 提交于 2020-03-16 01:57:53
D2 今天的题感觉还是好妙的 T1 传送门 Description 现在有一张 \(n\) 个节点 \(m\) 条边的无向连通图 \(G=(V,E)\) ,满足这张图中不存在长度大于等于3的环且图中没有重边和自环。 定义两个点 \(u,v\) 的距离 \(d(u,v)\) 为这两个点之间最短路上的点数,求 \[min_{u~\in~V}~max_{v~\in~V}~d(u,v)\] Input 第一行两个正整数n,m,表示点数边数 接下来 \(m\) 行,每行两个正整数,描述一条无向边 Output 一行一个整数代表答案。 Sample Input 7 6 1 2 1 6 2 5 3 1 4 7 2 4 Sample Output 3 Hint \(For~All:\) \(n,m~\leq~10^5\) \(For~30~percent:\) \(n,m~\leq~20\) \(For~60~percent:\) \(n,m~\leq~1000\) Solution 考虑这个十分煞笔的描述……其实这是棵树 题意是让你找到一个点,使得这个点到最远的点的距离最小 考虑30分做法,直接Floyd即可 考虑60分做法……我不知道60分怎么做 考虑100做法。一个点像最远的点的路径只有可能有两种情况,分别是向上走和向下走的两种情况于是可以先一遍dfs确定一个点向下的最长路