- 浏览: 50867 次
- 性别:
-
最新评论
文章列表
C++内联函数(内嵌函数,内置函数)
- 博客分类:
- C++
调用函数时需要一定的时间和空间的开销。C++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数(inline function),又称内嵌函数或内嵌函数。
指定内联函数的方法很简单,只需要在定义函数时增加 inline 关键字。
注意:是在函数定义时增加 inline 关键字,而不是在函数声明时。在函数声明时增加 inline 关键虽然没有错误,但是也没有任何效果
inline 关键字放在函数声明处不会起作用:
inline void swap(int &a, int &b);
void ...
C++虚析构函数详解
- 博客分类:
- C++
当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后再调用基类的析构函数。但是,如果用new运算符建立了临时对象,若基类中有析构函数,并且定义了一个指向该基类的指针变量。在程序用带指针参数的delete运 ...
引用<!DOCTYPE html>
<html>
<body>
<div style="text-align:center">
<button onclick="playPause()">播放/暂停</button>
<button onclick="makeBig()">放大</button>
<button onclick="makeSmall()">缩小</button> ...
HTML5 Audio - 如何工作
如需在 HTML5 中播放音频,你需要使用以下代码:
引用实例
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
您的浏览器不支持 audio 元素。
</audio>
尝试一下 »
control 属性供添加播放、暂停和音量控件。
在<audio> 与 &l ...
在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分。Node.js应用程序由以下三个重要组成部分:
导入需要模块: 我们使用require指令加载Node.js模块。
创建服务器: 服务器将监听类似Apache HTTP Serv ...
Linux中需要监控的资源主要有 CPU、主存(内存)、硬盘空间、I/O时间、网络时间、应用程序等。
影响系统性能的主要因素有:
因素 说明用户态CPU CPU在用户态运行用户程序所花费的时间,包括库调用,但是不包括内核花费的时 ...
Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配。注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能。
vi 是十年磨一剑的产品,虽然命令繁多,并且大 ...
Http协议三次握手过程
- 博客分类:
- 网络
TCP(Transmission Control Protocol) 传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish ...
Mysql数据表的优化
- 博客分类:
- MySQL优化
优化表的数据类型
表需要使用何种数据类型,是需要根据应用来判断的。虽然应用设计的时候需要考虑字段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即浪费存储也浪费内存。
我们可以使用PROCEDURE ANALYSE()对当前已有应用的表类型的判断,该函数可以对数据表中的列的数据类型提出优化建议,可以根据应用的实际情况酌情考虑是否实施优化。语法:
SELECT * FROM tbl_name PROCEDURE ANALYSE();
SELECT * FROM tbl_name PROCEDURE ANALYSE(16,256);
输出的每一列信息都会对数据表中的 ...
MySQL还允许改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间。改变优先级还可以确保特定类型的查询被处理得更快。
我们首先应该确定应用的类型,判断应用是以查询为主还是以更新为主的,是确保查询效率还是确保更新的效率,决定是查询优先还是更新优先。
下面我们提到的改变调度策略的方法主要是针对Myisam存储引擎的,对于Innodb存储引擎,语句的执行是由获得行锁的顺序决定的。
MySQL的默认的调度策略可用总结如下:
写入操作优先于读取操作。
对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。
对某张数据表的 ...
C++还保留了C语言中用于输入和输出单个字符的函数,使用很方便。其中最常用的有getchar函数和putchar函数。
putchar函数(字符输出函数)
putchar函数的作用是向终端输出一个字符。例如:
putchar(c);
它输出字符变量c的值。
【例3 ...
Mysql join语句的优化
- 博客分类:
- MySQL优化
Mysql4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下,子查询可以被更有效率的连接JOIN替代。
假设我们要将所有没有订单记录的用户取出来,可以用下面这个查询完成:
SELECT * FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo )
如果使用连接JOIN来完 ...
C++输入cout与输出cin
- 博客分类:
- C++
输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。
C++的输出和输入是用“流”(stream)的方式实现的。图3.2和图3.3表示C++通过流进行输入输出的过程。
有关流对象cin、cout和流运算符的定义等信息是存放在C++的输入输出流库中的,因此如果在程序中使用cin、cout和流运算符,就必须使用预处理命令把头文件stream包含到本文件中:
#include <iostream>
尽管cin和cout不是C++本身提供的语句,但是在不致混淆的情况下 ...
Geolocation(地理定位)
- 博客分类:
- HTML5
下例是一个简单的地理定位实例,可返回用户位置的经度和纬度:
<!DOCTYPE html>
<html>
<body>
<p id="demo">点击按钮获取您当前坐标(可能需要比较长的时间获取):</p>
<button onclick="getLocation()">点我</button>
<script>
var x=document.getElementById("demo");
function getLocation()
{ ...
拖放(Drag 和 Drop)
- 博客分类:
- HTML5
下面的例子是一个简单的拖放实例:
引用
<!DOCTYPE HTML>
<html>
<head>
<script>
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.d ...