Skip to content

Instantly share code, notes, and snippets.

View jasonlvhit's full-sized avatar
💭
I may be slow to respond.

辣椒面 jasonlvhit

💭
I may be slow to respond.
View GitHub Profile
// These two need to be declared outside the try/catch
// so that they can be closed in the finally block.
HttpURLConnection urlConnection = null;
BufferedReader reader = null;
// Will contain the raw JSON response as a string.
String forecastJsonStr = null;
try {
// Construct the URL for the OpenWeatherMap query
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
#include "data_descriptor.cuh"
#define threadsPerBlock 1024
__constant__ int N;
int main(){
std::string pattern = "^<([\\w|_]+)>\\s*::=\\s*(.*)";
std::regex p(pattern);
std::smatch piece;
string r = "<iter_stmt> ::= WHILE(<expression>) <stmt>";
std::regex_match(r, piece, p);
cout << piece.size() << endl;
for (size_t i = 0; i < piece.size(); ++i) {
std::ssub_match sub_match = piece[i];
package main
import (
"fmt"
"github.com/jasonlvhit/gocron"
)
func task() {
fmt.Println("I am runnning task.")
}
@jasonlvhit
jasonlvhit / tata.cpp
Created August 3, 2014 11:29
define vector init auto
#include <iostream>
#include <vector>
using namespace std;
#define max(a, b) a > b ? a : b
class Solution {
public:
template<typename T>
static inline T min(const T &a, const T &b){
return a > b ? b : a;

SDS -> Simple Dynamic String,简单动态字符串,为了性能和实现上的需要,Redis中用SDS取代了标准C中字符串(对不起,一个以'\0'结尾的char*)类型。SDS的实现比较简单,但却是维持Redis高效率的关键组件,SDS的源码在Redis源码文件中的sds.h和sds.c中可以找到。

相对于传统的标准C字符串,SDS主要有下面几个看起来好一点的特性:

  • 二进制安全,字符串中允许拥有任意类型的数据,包括'\0'
  • 在O(1)时间内获取字符串长度(strlen)
  • 高效的字符串追加操作(append)

第一点和第二点的实现其实很简单,为了在O(1)时间内获得长度,我们只有把这个长度存起来,有了长度我们也就能够判断字符串的开始和终止,也就是说,我们不再需要强制要求字符串是'\0'终止的了。

#include<cstdarg>
#include<iostream>
using namespace std;
int add(int pre, ...) //求和函数
{
va_list arg_ptr;
int sum = 0;
int nArgValue;

一个二进制数中有多少个一,经典问题,第一次看见是在C和指针中,使用的方法是移位。

查表

查表是最简单的做法,并且是时间复杂度最好的算法。

移位

#include 
#include <set>
#include <stdio.h>
#include <sys/time.h>
double now()
{
struct timeval tv;
gettimeofday(&tv, NULL);
return tv.tv_sec + tv.tv_usec / 1000000.0;

在这篇笔记的最前面,我一定要说,网络协议的设计者都是天才

使用SMTP发送邮件其实十分简单,就如同我们和人交谈别无二致。这里我们使用SMTP协议发送一封邮件,小小体会一下网络协议之美。我在这里使用Windows平台上的VS2013 作为编码环境,使用C++,和WinSock中的socket函数通信。

什么是SMTP,用Python中的SMTP模块发送一封邮件

SMTP--Simple Mail Transfer Protocol,简单邮件传输协议。这是一个应用层协议,我们可以使用此协议,发送简单的邮件。SMTP基于TCP协议,在不使用SSL,TLS加密的SMTP协议中,我们默认使用端口号25,在使用SSL\TLS的SMTP协议中,使用端口号465\587。

一次传输邮件的过程,其实就是一次和服务器对话的过程。为了标识这些对话中的各种动作,我们需要使用语言来和服务器沟通。例如客户端发送给服务器一条信息EHLO(Hello),服务器就知道这个客户端要给我发邮件了,这类似于我们人与人之间打招呼,我和服务器说:我要发邮件了!!!,于是服务器知道我要发邮件了,会给我回答一声:发吧。在SMTP协议中,也是同样,协议会返回一个标识码,来告诉我们服务器现在的状态,在我们打招呼之后,服务器一般会返回250,这告诉我们:“一切OK,放马过来吧”。