
C/C++基础
文章平均质量分 88
吕秀才
静下心来,每一步都踏踏实实。
展开
-
DAT的算法原理及实现
一、从Trie说起 DAT是Double Array Trie的缩写,说到DAT就必须先说一下trie是什么。Trie树是哈希树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,trie中文叫做键树,也叫字典树,从名字就可以看出trie的实质是一个树。trie的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。基本性质:1...原创 2019-09-19 16:54:13 · 3277 阅读 · 0 评论 -
char* to string
如果是赋值则可以利用basic_string& assign(const_iterator first, const_iterator last); char buf[] = "abcd"; string str; str.assign(&buf[0], &buf[strlen(buf)]);利用b转载 2012-10-24 16:30:35 · 6084 阅读 · 0 评论 -
宽字符处理函数函数与普通函数对照表
字符分类: 宽字符函数普通C函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控制符 iswdigit() isdigit() 测试字符是否为数字转载 2012-10-30 15:07:47 · 393 阅读 · 0 评论 -
VS C/C++动态链接库的创建
1)这个头文件是要导出为DLL入口的头文件,想把哪个函数写成DLL的入口,就写入这个文件#ifndef OUTFILE#define OUTFILE#ifdef __cplusplusextern "C" {#endifint InsertWord(char *str); //把这个函数写成DLL的入口函数#ifdef __cplusplus}#endif#endi原创 2012-10-10 11:01:18 · 1705 阅读 · 0 评论 -
c++DLL 学习之路(转)
DLL的优点简单的说,dll有以下几个优点:1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的)。2) 不需编译的软件系统升级,若一个软件系统使用了转载 2012-10-09 16:07:26 · 973 阅读 · 0 评论 -
获取文件夹下所有文件(在不定义Unicode宏情况下)
// FindFile.cpp : 定义控制台应用程序的入口点。//#include"stdafx.h"#include "windows.h"#include #include #include using namespace std;#define MAC_FILENAMELENOPATH 100void FindFile(TCHAR * Path);void AnToU原创 2011-09-19 15:05:51 · 574 阅读 · 0 评论 -
文本转换为CRF ++ 格式
#include #include #include #include ;using namespace std;int main(){ char low=0x81; char up=0xfe; string str; ifstream cin("in.txt"); ofstream fout("out.txt")转载 2012-09-27 10:36:56 · 2245 阅读 · 0 评论 -
文本自动校对技术研究综述
文本自动校对技术研究综述张仰森1,2 俞士汶11.北京大学计算语言学研究所 北京 100871; 2.北京信息科技大学计算机及自动化系 北京 100085【摘要】概述了文本自动校对技术的产生背景,分析了中西文文本的各自特点以及它们之间的异同,对中西文文本校对的技术难点和解决方法以及国内外的研究现状进行了回顾和讦述,探讨了文本校对技术未来的发展方向及需要解决的问题。【关键词】文本自转载 2012-03-14 10:41:35 · 3926 阅读 · 0 评论 -
链表插入排序
#include using namespace std;class LinkNode{public: int data; LinkNode *next; LinkNode(int k) { data=k; next=NULL;转载 2011-12-30 14:18:09 · 333 阅读 · 0 评论 -
谈C++中char*与wchar_t*之间的转换
谈C++中char*与wchar_t*之间的转换 2008-06-20 21:04:14| 分类: 技术创新 | 标签:c++ 编程 电脑 |字号大中小 订阅关于C++中的char*与wchar_t*这两种类型的相互转换,网上说的大多很繁琐,可行性也不高。下面这个方法是在MSDN里面找到的,个人认为还比较不错: 把char*转换为wchar_t转载 2011-12-30 13:48:07 · 383 阅读 · 0 评论 -
汉字字符串边界
char low=0x81; //汉字左边界 char up=0xfe; //汉字右边界 if(str[i]>=low&&str[i]原创 2012-12-24 10:53:41 · 914 阅读 · 0 评论 -
C/C++ 二维指针 矩阵 初始化
//C++方式double **Q=new double*[row]; //初始化Q矩阵 for(int i=0;i<row;++i) Q[i]=new double[POS_NUM](); int **Path=new int*[row]; //初始化Path矩阵 for(int i=0;i<row;++i) Path[i]=n原创 2012-09-26 13:15:22 · 6664 阅读 · 0 评论 -
链表插入排序
void insertsort(List &SortAsCount,Node * node){Node *q = new Node;q->count = node->count;q->data = node->data;q->len = node->len ;if(SortAsCount.first == NULL)SortAsCount.first = q;else{if(q-原创 2012-01-31 16:17:12 · 325 阅读 · 0 评论 -
归并排序
#include #include //将有序的X[s..u]和X[u+1..v]归并为有序的Z[s..v]void merge(int X[], int Z[], int s, int u, int v){ int i, j, q; i = s; j = u + 1; q = s; while( i <= u && j<= v ) {转载 2013-03-19 16:20:45 · 628 阅读 · 0 评论 -
编程之美2.5 寻找最大的K个数
/********************问题描述************************有若干个无序的数(假设数目为N),如何选择其中最大的K个数*****************************************************/#include#include#includeusing namespace std;/*************转载 2013-03-18 15:22:22 · 595 阅读 · 0 评论 -
二叉树,写着玩的
#ifndef DL_H#define DL_H#define null 0#include using namespace std;struct BinTreeNode{ char * data; BinTreeNode *leftchild , *rightchild; BinTreeNode(){ leftchild = null; rightchild = null; }原创 2013-01-14 15:58:47 · 681 阅读 · 0 评论 -
浅析求素数算法
注意: 如果没有特殊说明, 以下讨论的都是针对n为素数时的时间复杂度1. 根据概念判断:如果一个正整数只有两个因子, 1和p,则称p为素数.代码:bool isPrime(int n){ if(n < 2) return false; for(int i = 2; i < n; ++i) if(n%i == 0) return转载 2013-01-14 16:28:14 · 422 阅读 · 0 评论 -
C语言位段与联合体(union)的内存分配
union V { struct X { unsigned char s1:1; unsigned char s2:1; unsigned char s3:4; } x; unsigned char s1:1; unsigned char s2:1; unsigned char s3:4; int c; } v;void ma原创 2013-01-14 09:37:00 · 4035 阅读 · 0 评论 -
基于条件随机场的命名实体抽取
本文地址:http://blog.youkuaiyun.com/nocml/article/details/8496534转载请注明出处先声明,本人是菜鸟,这篇文章中的做法也是我的菜鸟做法,如果有大牛看到还请指点一二。勿喷。首先下载CRF++,这个开源工具还是很好用的,当然内存释放可能存在一些问题。下载地址:http://crfpp.googlecode.com/svn/trunk/doc/i原创 2013-01-12 17:56:41 · 3906 阅读 · 23 评论 -
二进制补码运算公式
-x = ~x + 1 = ~(x-1)~x = -x-1 -(~x) = x+1~(-x) = x-1x+y = x - ~y - 1 = (x|y)+(x&y) x-y = x + ~y + 1 = (x|~y)-(~x&y) x^y = (x|y)-(x&y)x|y = (x&~y)+yx&y = (~x|y)-~xx==y: ~(x-y|y-x)x!=y:转载 2013-01-10 17:29:58 · 1935 阅读 · 2 评论 -
堆和栈的区别——经典解释
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2013-01-10 09:35:09 · 1010 阅读 · 1 评论 -
主函数结束后 执行代码
int f(){ cout<<"this is a test of exit !"<<endl; return 0;}void main(){ _onexit(f); //注册的函数会在主函数执行后再执行 }原创 2013-01-06 15:56:58 · 543 阅读 · 0 评论 -
String 类 实现
class String{public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 ~String(); // 析构函数 String& operater =(const String &rhs); // 赋值函数private: char* m_转载 2013-01-06 15:59:23 · 447 阅读 · 0 评论 -
判断文件路径是否有效
#include if( (_access(CStr, 0 )) == -1 ) { printf( "%s%s%s","文件路径(",CStr,")错误!" ); /* Check for write permission */ exit(0); }原创 2011-12-30 13:50:11 · 862 阅读 · 0 评论 -
单链表
#includeusing namespace std;templateclass List;templateclass Node{ T info; Node*link;public: Node(); Node(const T &data);转载 2011-08-18 17:54:17 · 449 阅读 · 0 评论 -
冒泡排序
#include#includeusing namespace std;void BubbleSort(int r[],int n){int exchange,bound,j;int temp;exchange=n;while(exchange)原创 2011-08-18 14:06:00 · 358 阅读 · 0 评论 -
malloc 与new 的区别
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析转载 2011-08-19 11:22:38 · 358 阅读 · 0 评论 -
ELF 哈希算法
int ELFHash(char *str){ int hash = 0; long x =0; while (*str){ hash = (hash if((x = (转载 2011-08-17 10:02:58 · 753 阅读 · 0 评论 -
开散列表
#include "stdafx.h"//#include "test.h"#include//#includeusing namespace std;//void main()//{// Time A;// A.settime(23,23,23)转载 2011-08-16 09:56:04 · 700 阅读 · 0 评论 -
字符串复制
void strcopy(char *string1,char *string2) { for(char *temp=string2;temp!='\0';temp++) { *string1++=*string2++; } *string1='\0'原创 2011-08-17 09:21:31 · 389 阅读 · 0 评论 -
class和struct的区别
从语法上,在C++中(只讨论C++中)。class和struct做类型定义时只有两点区别: (一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理; (二)成员的默认访问权限。class的成员转载 2011-08-15 09:56:36 · 520 阅读 · 0 评论 -
c++ 二维数组
#include #include"stdafx.h"#include #include#includeusing namespace std;#define ROW 4 //行数#define COL 6 //列数 //使用typ原创 2011-08-15 09:17:39 · 618 阅读 · 0 评论 -
c++ 文件操作
原文出处:Simple File I/O Using C++ 序论 我曾发表过文件输入输出的文章,现在觉得有必要再写一点。文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用转载 2011-08-15 09:10:50 · 466 阅读 · 0 评论 -
struct 用法
1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程转载 2011-08-15 10:09:53 · 5022 阅读 · 0 评论 -
排序算法
在计算机科学与数学中,一个排序算法(Sorting algorithm)是一种能将一串数据依照特定排序方式的一种算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法(例如搜索算法与合并算法)中是重要的,如此这些算法才能得到正确解答。排序算法也用在处理文字数据以转载 2011-08-19 14:05:57 · 565 阅读 · 0 评论 -
char与wchar_t函数对照表
// ANSI string functions, originally from STRING.Hsize_t __cdecl strlen(const char *);int __cdecl strcmp(const char *, const char *);转载 2011-09-16 16:01:12 · 2765 阅读 · 0 评论 -
遍历文件夹(不包含子目录)
WIN32_FIND_DATA FindFileData;HANDLE hFind;TCHAR *FilePathBuff = L"C:\\TestFolder";hFind = FindFirstFile(FilePathBuff, &FindFileData);转载 2011-09-16 17:24:53 · 802 阅读 · 0 评论 -
heap corruption detected ,释放内存时出错
char *str1 = (char *)calloc(sizeof(char),5);char *str2 = "hello word !"; strcpy(str1,str2); free(str1); // 此时报错 " heap corruption detected “ 因为str1申请是空间大小的5,经过strcpy后,str1指向的空间大小改变,free时原创 2011-12-16 10:12:09 · 506 阅读 · 0 评论 -
windows下的makefile教程
windows下的makefile教程http://blog.youkuaiyun.com/mirror_hc/archive/2008/03/26/2221117.aspx joeliu 制作 4/19/2011 22:10:29 1. 先说几句废话 以前看书时经常遇到makefile,nmake这几个名词,然后随之而来的就是一大段莫名其妙的代码,把我看得云里雾里的。在 图书馆和goo转载 2011-12-14 15:09:38 · 1451 阅读 · 0 评论 -
中科院分词系统概述
中科院分词系统概述这几天看完了中科院分词程序的代码,现在来做一个概述,并对一些关键的数据结构作出解释〇、总体流程考虑输入的一句话,sSentence="张华平欢迎您"总体流程:一、分词 "张/华/平/欢迎/您"二、posTagging "张/q 华/j 平/j 欢迎/v 您/r"三、NE识别:人名识别,音译名识别,地名识别 "张/q 华/j 平/j 欢迎/v 您/r转载 2011-12-13 13:49:13 · 1642 阅读 · 0 评论