![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 68
youwuwei2012
这个作者很懒,什么都没留下…
展开
-
c/c++ CONST
C中的const,功能比较单一,较容易理解: 作用:被修饰的内容不可更改。 使用场合: 修饰变量,函数参数,返回值等。(c++中应用场合要丰富的多) 特点: 是运行时const,因此不能取代#define用于成为数组长度等需要编译时常量的情况。同时因为是运行时const,可以只定义而不初始化,而在转载 2014-05-05 08:58:53 · 401 阅读 · 0 评论 -
数组的引用的用途
在C++中可以定义数组的引用,用以解决C中无法解决的“数组降价”问题,我们先来看看什么是“数组降价”,先看如下代码: … void Test( char array[20] ) { cout } char array[20] = { 0 }; cout Test( array ); … 我们看到,对于同样的数组array,一个输出转载 2014-08-18 15:36:12 · 546 阅读 · 0 评论 -
TF-IDF与余弦相似性的应用(三):自动摘要
作者: 阮一峰 有时候,很简单的数学方法,就可以完成很复杂的任务。 这个系列的前两部分就是很好的例子。仅仅依靠统计词频,就能找出关键词和相似文章。虽然它们算不上效果最好的方法,但肯定是最简便易行的方法。 今天,依然继续这个主题。讨论如何通过词频,对文章进行自动摘要(Automatic summarization)。 如果能从3000字的文章,提炼出150字的转载 2014-07-14 11:03:42 · 410 阅读 · 0 评论 -
小于号重载须注意的问题——strict weak ordering
这是今天写程序中遇到的两个诡异的问题。我的 IDE 是 VC++2005 ExpressiEdition 。 第一个问题是关于 map 的。话不多说,以下 20 多行的 C++ 代码重现了我遇到的问题: #include #include using namespace std; struct S { int x, y; S(int转载 2014-07-12 14:36:49 · 526 阅读 · 0 评论 -
【C++11】新特性——auto的使用
C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。 1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。转载 2014-07-11 11:45:57 · 368 阅读 · 0 评论 -
【C++11】新特性——引入nullprt
1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起。对于C和C++程序员来说,一定不会对NULL感到陌生。但是C和C++中的NULL却不等价。NULL表示指针不指向任何对象,但是问题在于,NULL不是关键字,而只是一个宏定义(macro)。 1.1 NULL在C中的定义 在C中,习惯将NULL定义为void*指针值0: [cpp] view转载 2014-07-11 11:42:14 · 550 阅读 · 0 评论 -
胜者树和败者树和堆
胜者树内部节点节点记录的是胜者的数值,而败者树内部节点记录的是败者的数值。 胜者树内部节点可能记录的是同一个叶子节点的值,但是败者树不会是记录同一个叶子节点值。 胜者树更新的时候需要和兄弟节点比较,但是败者树只需要和父节点比较就可以了。 败者树比胜者树多一个节点来记录胜者。 胜者树败者树堆结构和功能和时间复杂度都相似 堆转载 2014-06-19 14:24:03 · 1097 阅读 · 0 评论 -
sort和qsort的区别
std::sort使用的算法在大多数情况下都比quick sort算法要快,并且,在quick sort越慢的情况下越明显。Quick sort 平均情况下为O( NlogN ) ,在最坏情况下为 O (N^2)。 而std::sort是针对Quick sort最坏情况做的改进,从而保持了 O(NlogN) 的复杂度。但是,对适合quick sort的情况下,std::sort的改进没有起作用,反原创 2014-06-18 16:58:01 · 468 阅读 · 0 评论 -
堆排序,插入,删除,调整算法(大顶堆)
#include #include /*堆以数组为组织方式,下标从0开始*/ #define INIT_ARRAY_SIZE 50 /*函数声明部分*/ void build_heap(int par_array[], int length); void max_heap_adjust(int par_array[], int index); void heap_s转载 2014-06-19 13:44:43 · 2114 阅读 · 0 评论 -
STL系列之四 heap 堆
下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap(): 头文件 #include 下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。 建转载 2014-06-19 11:46:36 · 416 阅读 · 0 评论 -
C++ 虚函数表解析(转自http://blog.csdn.net/haoel/archive/2007/12/18/1948051.aspx)
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使转载 2014-06-30 23:12:09 · 699 阅读 · 0 评论 -
unorder_map
标准std中只有map,是使用平衡二叉树实现的,查找和添加的复杂度都为O(log(n)), 没有提供hash map,gnu c++提供了hash_map,是一个hash map的实现,查找和添加复杂 度均为O(1)。转载 2014-07-19 11:33:10 · 1334 阅读 · 0 评论 -
struct和class的区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class还能有什么区别? 最本质的一个区别就是默认的访问控制: 默认的继承访问权限 struct是pu转载 2014-06-26 14:07:13 · 325 阅读 · 0 评论 -
C语言中可变参数的用法
首先在介绍可变参数表函数的设计之前,我们先来介绍一下最经典的可变参数表printf函数的实现原理。 一、printf函数的实现原理 在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地址向低地转载 2014-06-24 19:26:32 · 392 阅读 · 0 评论 -
C语言中auto,register,static,const,volatile 的区别
C 语言中 auto , register , static , const , volatile 的区别 (1)auto 这个关键字用于声明变量的生存期为自动, 即将不在任何类、 结构、 枚举、 联合和函数中定义的变量视为全局变量, 而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的转载 2014-05-06 10:25:17 · 448 阅读 · 0 评论 -
fstream对象重复使用时注意clear()的调用,否则会造成打开第二个文件失败
一个fstream对象对应磁盘上的一个文件,但并不一定是同一个文件。这样的绑定关系在调用fstream的构造函数或是成员函数open()时指定。 有时会重复使用同一个fstream对象先后绑定不同的文件,在两次绑定中间仅仅调用close()是不够的(当然对close()的调用是必须的,每次 打开文件使用完毕都必须关闭文件)。close()函数并不会重置fstream的条件状态。如果先前某个操作转载 2014-05-06 13:29:29 · 1148 阅读 · 0 评论 -
vector的clear操作的内部过程
最近在论坛看到一个提问帖子,问题是vector中存储了对象的指针,调用clear后这些指针如何删除? [cpp] view plaincopy class Test { public: Test() {} ~Test() { cout "Test des" }; int main()转载 2014-08-31 14:20:25 · 692 阅读 · 0 评论