2013年6月28日, 上午10:37
Node.js是一套用来编写高性能网络服务器的JavaScript工具包,为JavaScript搭建服务器提供了可能,不再是C++或其它语言的专利。下面介绍的是一款免费在线IDE,创建简单服务的过程,监听端口接收浏览器发来的数据。
nitrous提供的云编译器,支持多种语言,参考https://www.zoudaokou.com/index.php/archives/227中介绍的编译器注册创建步骤,创建一个Node.js的环境,然后打开界面,创建一个server.js的文件,文件内容如下
[php]
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8080);
[/php]
Continue reading ‘使用nitrous在线编译器创建node.js服务’ »
Category:
免费资源 |
使用nitrous在线编译器创建node.js服务已关闭评论
2013年6月27日, 上午10:31
最近发现一款非常好用的在线编译器,Linux开发环境,支持Linux在线命令执行,支持几种常见的语言在线编译运行。支持git命令,能够从git上下载工程,网址是http://www.nitrous.io/
进入网站后需要注册一个帐号,并使用邮箱激活才能正常使用,注册非常简单,30秒可以搞定,激活邮箱后,登陆到页面,会提示你创建一种编程语言,一个帐号只能免费创建一种,要想创建多个,需要邀请好友获取N2O积分,用积分换语言。
下面图中是我已经创建了一个Go语言编程环境的,点击New Box可以创建一个新的编程环境。
Continue reading ‘nitrous在线编译器,支持C、C++、Java、Ruby、Python、Go、Node.js’ »
Category:
免费资源 |
nitrous在线编译器,支持C、C++、Java、Ruby、Python、Go、Node.js已关闭评论
2013年6月18日, 下午7:47
今天下载了1.2版本的FFmpeg库,在官方网站有一个链接,可以下载到编译好的windows版本的库。下载下来后,写了一段程序,在main函数中执行到函数av_register_all(),直接崩溃,提示Unhandled exception at 0x00905a51 in main.exe: 0xC000001D: Illegal Instruction,工程是Release版本的,调用代码如下:
[php]
#include <stdio.h>
#include <libavformat/avformat.h>
#include <libavutil/dict.h>
int main (int argc, char **argv)
{
AVFormatContext *fmt_ctx = NULL;
AVDictionaryEntry *tag = NULL;
int ret;
if (argc != 2) {
printf("usage: %s <input_file>\n"
"example program to demonstrate the use of the libavformat metadata API.\n"
"\n", argv[0]);
return 1;
}
av_register_all();
if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
return ret;
while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
printf("%s=%s\n", tag->key, tag->value);
avformat_close_input(&fmt_ctx);
return 0;
}
[/php]
Continue reading ‘vs2005调用ffmpeg库执行av_register_all出错崩溃’ »
Category:
编解码 |
vs2005调用ffmpeg库执行av_register_all出错崩溃已关闭评论
2013年6月16日, 下午10:42
问题描述:
- 设有n(n = 2^k)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且每位选手每天必须比赛一场,不能轮空。试按此要求为比赛安排日程。
编程思想:
假设n位选手被顺序编号为1,2,3,…,n,比赛的日程表是一个n行n-1列的表格,i行j列的表格内容是第i号选手在第j天的比赛对手。根据分而治之的原则,可从其中一半选手(2^(n-1位)的比赛日程,导出全体n位选手的日程,最终细分到只有两位选手的比赛日程出发。可假设只有8位选手参赛,若1至4号选手之间的比赛日程填在日程表的左上角(4行3列),5至8号选手之间的比赛日程填在日程表的左下角(4行3列);那么左下角的内容可由左上角的对应项加上数字4得到。至此,剩余的右上角(4行4列)是为编号小的1至4号选手与编号大的5至8号选手之间的比赛日程安排。例如,在第4天,让1至4号选手分别与5至8号选手比赛,以后各天,依次由前一天的日程安排,让5至8号选手“循环轮转”即可。最后,比赛日程表的右下角的比赛日程表可由,右上角的对应项减去数字4得到。
具体实现:
Continue reading ‘循环赛日程安排分治法分析’ »
Category:
数据结构与算法 |
循环赛日程安排分治法分析已关闭评论
2013年6月14日, 下午9:06
问题:
给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为:
Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n
例如,当(a1,a2,a3,a4,a4,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为20
下面列出了四种计算方式,时间复杂度各逐渐变小,其中动态规划法时间复杂度最小。
Continue reading ‘最大子段和算法分析’ »
2013年6月13日, 下午5:05
题目很简单,完成函数reverse,要求实现把给定的一个整数取其相反数的功能,举两个例子如下: x = 123, return 321 x = -123, return -321
规则:
1.完成功能函数即可。
下面是我用C写的,用C++其实也一样。
[php]
int reverse(int x) {
int result = 0;
do {
int temp = x % 10;
result = result * 10 + temp;
} while ((x /= 10) != 0);
return result;
}
int main()
{
int num = 0;
scanf("%d", &num);
printf("%d\n", reverse(num));
return 0;
}
[/php]
这个是C++的
Continue reading ‘整数取反,颠倒位置’ »
Category:
C++ |
整数取反,颠倒位置已关闭评论
2013年6月11日, 下午9:04
在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
分治法所能解决的问题一般具有以下几个特征:
1) 该问题的规模缩小到一定的程度就可以容易地解决
2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。
3) 利用该问题分解出的子问题的解可以合并为该问题的解;
4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
Continue reading ‘分治法排序’ »
2013年6月5日, 下午11:08
c++允许隐式转换,没有加入explicit限定符的都看作是能够实现隐式转换的,但有些时候不期望这样做。
例如:
[php]
class CBook
{
public:
CBook(std::string name) : m_name(name), m_width(0), m_height(10) {}
int Compare(CBook& book);
std::string m_name;
int m_width;
int m_height;
};
CBook book1("book1");
book1.m_width = 10;
book1.m_height = 20;
int result = book1.Compare("book2");
[/php]
在这里调用Compare函数时,本来是需要CBook参数的,但由于CBook的构造函数参数是std::string,这里编译器自动使用”book2″临时构造一个CBook对象,同时将这个临时对象传给Compare函数,并在离开Compare函数时自动析构,这就是隐式转换的过程。
Continue reading ‘explicit防止隐式转换’ »
Category:
C++ |
explicit防止隐式转换已关闭评论
2013年6月1日, 下午5:09
boost库一款非常优秀的c++库,文档非常完善,鼓励商业或非商业使用,开源免费,被称为准标准库,下面介绍它在windows下的编译过程。
现在最新的boost库版本是1_53_0,可以在其官方网站下载,解压后,可以打开boost_1_53_0目录下的index.html文件,这里面对boost库进行了详细的说明,包括boost的安装,在文档的Getting Started on Windows中描述了使用MSVC的Command Prompt进行编译的过程。
例如我的机器安装了Visual Studio 2005,在开始菜单中打开Microsoft Visual Studio 2005 > Visual Studio Tools > Visual Studio 2005 Command Prompt。
然后使用命令行进入boost_1_53_0的目录,并执行以下命令
[php]
bootstrap
[/php]
这个步骤是安装boost库编译程序,最后会在boost_1_53_0目录下生成b2.exe程序,生成了b2.exe后,再执行
[php]
b2 –build-type=complete
[/php]
这个步骤就是编译boost库了,编译完成后,会在boost_1_53_0的stage目录中找到生成的lib文件,如boost_date_time-vc80-mt-gd-1_53.lib,其中vc80表示是vs2005版本的。
Continue reading ‘boost的windows编译’ »
Category:
开源工具库 |
boost的windows编译已关闭评论