C/C++
蜡笔大龙猫
这个作者很懒,什么都没留下…
展开
-
qsort与bsearch
qsort包含在头文件中,此函数根据给的比较条件进行快速排序,排序之后的结果仍然放在原数组中,需要自己写一个比较函数。 函数原型: void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) ); base :数组起始地址 num原创 2011-11-10 09:12:21 · 1621 阅读 · 0 评论 -
STL简介
什么是STL? STL就是Sandard Template Library,标准模板库,所有C++编译器和所有操作系统平台都支持的一种库,不需要了解底层是怎么样实现的,只要掌握了使用就可以。 STL的优点在于通用性,与C++的OOP特性无关。 模板是什么? 模板是C++中实现代码重用机制的一种工具,可以实现类型参数化,把类型定义为参数。函数模板和类模板允许用原创 2011-11-30 22:06:47 · 1504 阅读 · 0 评论 -
STL----map
#include 关联容器,可以通过一个key快速指定一个value。 模板类map和multimap,用有序二叉树来存储类型为 pair 的元素对序列(这是与set的区别之处),map中的key是唯一的,multimap中得key允许重复。 四个参数: 例如:map m; 插入操作: m[key] = value; m.insert( make原创 2011-11-30 23:07:56 · 464 阅读 · 0 评论 -
STL----set
#include set集合中的元素按照一定的顺序排列。set和multiset的区别就是键值是否唯一。 模板参数: template 第一个参数key是键值类型,第二个参数是为排序值而定义的比较函数的类型,第三个参数是被实现的存储分配符的类型。在有些编译器的具体实现中,第三个参数可以省略。第二个参数使用了合适形式的迭代器为键定义了特定的关系操作符,并用来在容原创 2011-11-30 23:21:07 · 1229 阅读 · 0 评论 -
从一个微型例子看“C/C++的内存分配机制”和“数组变量名与指针变量名”
转自:http://www.cnblogs.com/welkinwalker/archive/2011/01/05/1926203.html 内存分配方式有三种: 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。在栈上创建。 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元转载 2012-03-08 10:31:47 · 720 阅读 · 0 评论 -
STL----vector与string
#include 向量容器模板类,类似于数组,采用顺序存储,相当于动态数组。 两个参数: 构造方法: vector s; vector s(n); vector s( first , last );基本操作: s[i]; s.front();//返回首元素 s.back();//返回尾元素 s.push_back(); s.size(); s.empty();原创 2011-11-30 22:35:19 · 751 阅读 · 0 评论 -
scanf()、gets()、getchar()的区别
首先介绍输入操作的原理: 程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时()即按下Enter键后)会将输入的数据存入输入缓冲区。 当键盘输入一串字符串时,例如“Hello World!”,键入回车,将“Hello World!”存到输入缓冲区中,包括最后的回车。 scanf()从输入缓冲区中读取值,遇到回车、空格、TAB就会自动停止,后面的字符会自动停留原创 2011-11-09 17:08:02 · 577 阅读 · 0 评论 -
long long与_int64数据类型
常用的整数类型范围: long 和 int 类型表示 [-2^31 , 2^31 ) , 即 2147483648 ~ 2147483647 unsigned 类型表示 [ 0 , 2^32 ),即 0 ~ 4294967295 对于更大的数,可以使用C++的64位扩展,但是不同的编译器对64位扩展不同 VC6.0的64位整数叫做__int64、unsigned __int64,其范围原创 2011-11-20 16:33:25 · 4105 阅读 · 0 评论 -
STL----stack与queue
# include 不深入研究细节,只讨论基本使用。 两个参数: stack s; 例如:stack s1; stack s2; 基本操作: s.push(x); //入栈 s.pop(); //出栈,只删除,不返值 s.top(); //访问栈顶 s.empty(); //判断栈空 s.size(); //访问元素个数 #include 参原创 2011-11-30 22:52:21 · 1055 阅读 · 0 评论 -
STL----list
#include 链表,只能顺序访问,不支持随即访问,因此不支持下标运算符operator[ ]。 构造函数: list l1; 函数操作: list仍然包涵了erase(),begin(),end(),insert(),push_back(),push_front()这些基本函数。 其他函数: merge():合并两个排序列表; sp原创 2011-11-30 23:15:15 · 1182 阅读 · 0 评论 -
高精度运算类bign
#include #include #include #include #include #include #include #include using namespace std; const int maxn = 1000; struct bign { int len, s[maxn]; //s是逆序存储 bign(){ m原创 2011-12-13 16:26:41 · 2222 阅读 · 1 评论 -
malloc/free与new/delete的区别
转自:http://blog.csdn.net/hackbuteer1/article/details/6789164#comments 相同点:都可用于申请动态内存和释放内存 不同点: (1)操作对象有所不同。 malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求转载 2012-08-29 23:00:41 · 628 阅读 · 0 评论 -
LDA理解以及源码分析(二)
LDA系列的讲解分多个博文给出,主要大纲如下: LDA相关的基础知识 什么是共轭 multinomial分布 Dirichlet分布 LDA in text LAD的概率图模型 LDA的参数推导 伪代码 GibbsLDA++-0.2源码分析 Python实现GibbsLDA 参考资料 GibbsLDA++-0.2源码分析GibbsLDA++-0.2工具包下载地址为:下载工具包里docs文件夹里有原创 2015-12-09 17:31:13 · 6749 阅读 · 1 评论