C++ Programming
战辉
一直从事自然语言处理(NLP),对于自然语言生成、机器翻译、语言模型等研究较多
展开
-
自定义类型struct的排序-sort函数
C++中sort函数关于自定义类型struct的排序使用方法。sort函数在头文件algorithm中,在MSDN中的定义如下:第一种:templatevoid sort(RanIt first, RanIt last);第二种:templatevoid sort(RanIt first, RanIt last, Pred pr);/* *关于自定义数据类型的so原创 2013-12-01 14:23:32 · 10376 阅读 · 0 评论 -
C.Interface.And.Implementations—ring的实现
1、A ring is much like a sequence: It holds N values associated with the integer indices zero through N −1 when N is positive. 2、An empty ring holds no values. Values are pointers. 3、Like the values in a sequence, values in a ring may be accessed by inde原创 2014-01-12 11:48:47 · 1324 阅读 · 0 评论 -
C.Interface.And.Implementations—sequence的实现
1、A sequence holds N values associated with the integer indices zero through N−1 when N is positive. 2、An empty sequence holds no values. 3、Like arrays, values in a sequence may be accessed by indexing; 4、they can also be added to or removed from eit原创 2014-01-11 21:18:41 · 1309 阅读 · 0 评论 -
C.Interface.And.Implementations—dynamic arrays的实现
1、An array is a homogeneous sequence of values in which the elements in the sequence are associated one-to-one with indices in a contiguous range. 2、Arrays in some form appear as built-in data types in virtually all programming languages.动态数组,底层的数据结构很原创 2014-01-10 22:45:10 · 1123 阅读 · 0 评论 -
C.Interface.And.Implementations—set的实现
1、A set is an unordered collection of distinct members. 2、The basic operations on a set are testing for membership, adding members, and removing members. 3、Other operations include set union, intersection, difference, and symmetric difference. set实现类原创 2014-01-10 21:38:11 · 1080 阅读 · 0 评论 -
C.Interface.And.Implementations—table(key-value系统)的实现
1、An associative table is a set of key-value pairs. It’s like an array except that the indices can be values of any type.table的实现是以哈希表和链表实现。内存形式如下:原创 2014-01-10 12:57:12 · 1220 阅读 · 0 评论 -
Windows下C语言的Socket编程例子(TCP和UDP)
一、TCP服务器端#include "stdafx.h"#include #include #pragma comment(lib,"ws2_32.lib")int main(int argc, char* argv[]){ //初始化WSA WORD sockVersion = MAKEWORD(2,2); WSADATA wsaData;转载 2014-01-09 15:28:21 · 1357 阅读 · 0 评论 -
C.Interface.And.Implementations—memory(arena版)的实现
1、This chapter describes a memory-management interface and an imple-mentation that uses arena-based algorithms, which allocate memory from an arena and deallocate entire arenas at once.2、With the arena-based allocator, there’s no obligation to call free原创 2014-01-08 20:38:25 · 1335 阅读 · 0 评论 -
C.Interface.And.Implementations—list(单链表)的实现
单链表的原理不在赘述!通过优美的源代码进行理解其中的道理!原创 2014-01-09 14:49:16 · 1164 阅读 · 0 评论 -
C++ namespace解析
看到网上很多人写了namespace的使用方法,我在此对大家的进行简单总结。通过此日志,可以快速掌握namespace的原理以及用法。关于C++ namespace,我们需要回答如下几个问题:1、什么是namespace?2、为什么有namespace?也就是namespace的作用3、namespace的使用方法有哪些原创 2013-12-25 11:40:29 · 2820 阅读 · 0 评论 -
C.Interface.And.Implementations—memory(简单版本)的实现
1、All nontrivial C programs allocate memory at runtime. The standard C library provides four memory-management routines:malloc , calloc , realloc, and free. 2、Mem_alloc allocates a block of at least nbytes and returns a pointer to the first原创 2014-01-08 10:52:25 · 1225 阅读 · 0 评论 -
C.Interface.And.Implementations—memory(复杂版本)的实现
1、After the call to free, p holds a dangling pointer— a pointer that refers to memory that logically does not exist. Subse-quently dereferencing p is an error, although if the block hasn’t been reallocated for another purpose, the error might go undete原创 2014-01-08 14:31:02 · 1275 阅读 · 0 评论 -
C.Interface.And.Implementations—exception的实现
1、Three kinds of errors occur in programs: user errors, runtime errors, and exceptions.2、Exceptions occupy the middle ground between user errors and program bugs. An exception is an error that may be rare and perhaps unexpected, but from which原创 2014-01-07 15:22:38 · 928 阅读 · 0 评论 -
C.Interface.And.Implementations—Atom的实现
An atom is a pointer to a unique, immutable sequence of zero or more arbitrary bytes. Most atoms are pointers to null-terminated strings, but a pointer to any sequence of bytes can be an atom. There is only a single occurrence of any atom, which is why it原创 2014-01-06 20:46:57 · 1167 阅读 · 0 评论 -
setjmp和longjmp的使用(个人修改其中一部分)
setjmp与logjmp包含在头文件/usr/include/setjmp.h中,使用前应在程序头部加入#include 。setjmp与longjmp结合使用时,它们必须有严格的先后执行顺序,也即先调用setjmp函数,之后再调用longjmp函数,以恢复到先前被保存的“程序执行点”。否则,如果在setjmp调用之前,执行longjmp函数,将导致程序的执行流变的不可预测,很容易导致程转载 2014-01-07 14:57:31 · 1108 阅读 · 0 评论 -
C.Interface.And.Implementations—stack的实现
由于之前一直写C++代码,感觉对指针都很多底层理解不是很深入,于是开始阅读《C.Interface.And.Implementations》这本书籍,这本书经别人推荐说不错,于是从头到尾好好研究一下。第一章主要阐述了堆栈的接口以及实现。底层使用单链表进行支撑。原创 2014-01-06 17:08:17 · 1565 阅读 · 0 评论 -
#ifdef DEBUG编程示例(项目开发时对中间状态信息的控制)
在开发程序或者大型项目的时候,特别需要打印一些中间的状态信息到日志文件中,方便跟踪程序的执行流程,加速程序开发的进度。但是在发布程序的时候,我们并不想打印那些对用户是无关紧要的中间过程信息。那应该怎么办呢?原创 2013-12-15 17:14:37 · 2460 阅读 · 0 评论 -
C.Interface.And.Implementations—bit vector的实现
1、The Bit interface exports functions that manipulate bit vectors, which can be used to represent sets of integers from zero to N− 1. For example, 256-bit vectors can be used to represent sets of characters efficiently.2、Bit provides most of the set-m原创 2014-01-13 14:56:55 · 1421 阅读 · 0 评论