
c++
秦时明月-cy
这个作者很懒,什么都没留下…
展开
-
虚函数
先写个题目,有空再写哈,提醒下自己!!原创 2013-12-10 17:32:27 · 358 阅读 · 0 评论 -
STL算法-sort
Defined in header 构造函数:原创 2014-06-19 20:09:12 · 460 阅读 · 0 评论 -
map映射容器应用-数字和字符转换
在很多情况下,需要实现将数字映射为相应的字符原创 2014-06-21 16:30:24 · 1203 阅读 · 0 评论 -
容器set
set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点左子树的高度与右子树的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。原创 2014-06-20 21:41:51 · 486 阅读 · 0 评论 -
STL-deque
deque双端队列容器原创 2014-06-22 14:28:01 · 452 阅读 · 0 评论 -
链表的建立
fstream fin("test.txt"); ListNode* head(0); int val = 0; while (fin >> val){ if (head == NULL){ head = new ListNode(val); } else{ while (head->next != NULL) head = head->next; he原创 2014-08-18 16:10:51 · 589 阅读 · 0 评论 -
[leetcode]sort list
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };* Sort a linked list in O(n log n) time using const原创 2014-08-18 14:10:42 · 627 阅读 · 0 评论 -
STL算法-reverse
Defined in header原创 2014-06-19 19:46:08 · 596 阅读 · 0 评论 -
函数对象
定义:函数对象,顾名思义,行为类似函数的对象叫做函数对象,它定义了 调用操作符的类优点:首先,因为对象可以在内部修改而不用改动外部接口,因此设计更灵活,更富有弹性。函数对象也具备有存储先前调用结果的数据成员。在使用普通函数时需要将先前调用的结果存储在全程或者本地静态变量中,但是全程或者本地静态变量有某些我们不愿意看到的缺陷。其次,在函数对象中编译器能实现内联调用,从而更进一步增原创 2014-09-13 16:18:05 · 851 阅读 · 0 评论 -
模版的特化和偏特化
模版的特化与偏特化 Partial Template Specialization能够让你在模板(Template)的所有可能的实体中特化出一组子集. 1.模板的特化(template specialization): 例如,定义如下的一个模板: template class Widget { ... 泛化实现原创 2014-09-13 18:44:28 · 698 阅读 · 0 评论 -
C++ 中explicit关键字
explicit用来防止由单参数构造函数定义的隐式转换。或者有2个参数的构造函数,但有一个参数设置了默认值。先扫盲下什么是隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。eg:class things{ public: things(string &name = ""): m_nam原创 2014-09-14 10:55:45 · 961 阅读 · 0 评论 -
class和struct有什么区别?
这里有两种情况下的区别。(1)C的struct与C++的class的区别。(2)C++中的struct和class的区别。在第一种情况下,struct与class有着非常明显的区别。C是一种过程化的语言,struct只是作为一种复杂数据类型定义,struct中只能定义成员变量,不能定义成员函数。例如下面的C代码片断: struct Point {原创 2014-09-14 21:55:35 · 769 阅读 · 0 评论 -
★ Linked List Cycle II -- LeetCode
证明单链表有环路:本文所用的算法 可以 形象的比喻就是在操场当中跑步,速度快的会把速度慢的扣圈 可以证明,p2追赶上p1的时候,p1一定还没有走完一遍环路,p2也不会跨越p1多圈才追上 我们可以从p2和p1的位置差距来证明,p2一定会赶上p1但是不会跳过p1的 因为p2每次走2步,而p1走一步,所以他们之间的差距是一步一步的缩小,4,3,2,1,0 到0的时候就重合原创 2014-09-01 09:50:04 · 669 阅读 · 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 plai原创 2014-09-02 10:39:18 · 702 阅读 · 0 评论 -
c++——继承类中的子对象和基类对象的初始化
为什么研究临时对象?主要是为了提高程序的性能以及效率,因为临时对象的构造与析构对系统开销也是不小的,所以我们应该去了解它们,知道它们如何造成,从而尽可能去避免它们。临时对象是可以被编译器感知的。下面的例子,可能有人认为"int temp"是"临时对象",但是其实不然,"int temp"仅仅是swap函数的局部变量。 #include void swap( int &a,原创 2014-09-16 14:25:01 · 4315 阅读 · 1 评论 -
STL算法-accumlate
First versiontemplateclass InputIt, class T>T accumulate(InputIt first, InputIt last, T init){ for (; first != last; ++first) { init = init + *first; } return init;}原创 2014-06-19 18:23:38 · 1031 阅读 · 0 评论 -
数值运算转化为string
在ACM竞赛中,常常需要将读入的数字的每位分离出来,如果采用取余的方法,花费的时间就会太长,这时候,我们可以将读入的数据当成字符串来处理,这样就方便、省时多了。下面这个程序演示了求一个整数各位的和:原创 2014-06-19 21:45:04 · 516 阅读 · 0 评论 -
实战笔记之C++里面双冒号和冒号及点号引用符
标题党了额,mark一下,有时间再整理。以下节选自多人博客。箭头(->):左边必须为指针;点号(.):左边必须为实体。静态函数用 类名::方法名非晶态函数 对象.或用->方法名C++里面双冒号和冒号及点号引用符的用法与区别在类外定义函数的时候,要用到void ClassName::FuntionName(pram){}在定义类的静态变量的时候需要in原创 2013-12-10 22:26:28 · 2131 阅读 · 0 评论 -
STL标准容器排序操作
西方有句谚语:不要重复发明轮子!STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。排序是最广泛的算法之一,本文详细介绍了STL中不同排序算法的用法和区别。1 STL提供的Sort 算法C++之转载 2013-12-17 09:18:18 · 672 阅读 · 0 评论 -
C++中指针和引用的区别
mark 日后整理推荐博文一篇http://www.cnblogs.com/kingln/articles/1129114.html原创 2013-12-10 22:27:43 · 446 阅读 · 0 评论 -
define与typedef区别与联系
define与typedef区别与联系 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预转载 2014-03-04 22:04:56 · 432 阅读 · 0 评论 -
acm-最大公约数/最小公倍数 快速算法
stein 算法求最大公约数,和欧基里德算法相比,效果更好: 主要思想如下: 化归思想原创 2014-06-23 12:32:11 · 3017 阅读 · 1 评论 -
一种高效的求平均数的算法
#includeusing namespace std;int main(int agrc, char*agrv[]){ int x, n = 0; while (cin >> n) { double avg = 0; for (int i = 1; i <= n; i++) { cin >> x; avg += (x - avg) / i; } cou原创 2014-06-23 14:58:45 · 4639 阅读 · 0 评论 -
十进制转二进制-快速算法
#include#includeusing namespace std;int main(int agrc, char *agrv[]){ int iInPut = 0; while (cin >> iInPut) { string sBinary;//转换后的二进制存储为字符串,调用了默认构造函数初试化为空串 int temp = abs(iInPut); if (t原创 2014-06-24 22:59:30 · 4758 阅读 · 0 评论 -
快速排序-c++(分别用数组和容器实现)
/***********************************************************************版权所有 (C)2014, cheng yang。**文件名称:快速排序.cpp*内容摘要:无*其它说明:无*当前版本: V1.0*作 者:cheng yang*完成日期: 20140625** 版本 修改时间原创 2014-06-25 19:45:25 · 1184 阅读 · 0 评论 -
static作用
(1)第一个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#include增加这条语句char a = ‘A‘; // global variablevoid msg() { printf("Hello\n"); }原创 2014-06-26 11:02:19 · 582 阅读 · 0 评论 -
高效判断素数的算法
来求出小于等于n的所有的素数。 num = 0; for(i=2; i { for(j=2; j if( j%i==0 ) break; if( j>sqrt(i) ) prime[num++] = i; //这个prime[]是int型,跟下面讲的不同。 } 这就是最一般的求解n以内素数的算法。复杂度是o(原创 2014-06-23 20:00:07 · 757 阅读 · 0 评论 -
快排多版本
前言: 相信,经过本人之前写的前俩篇关于快速排序算法的文章:第一篇、一、快速排序算法,及第二篇、一之续、快速排序算法的深入分析,各位,已经对快速排序算法有了足够的了解与认识。但仅仅停留在对一个算法的认识层次上,显然是不够的,即便你认识的有多透彻与深入。最好是,编程实现它。 而网上,快速排序的各种写法层次不清,缺乏统一、整体的阐述与实现,即,没有个一锤定音,如此,我便打算自己转载 2014-06-25 23:05:14 · 726 阅读 · 0 评论 -
string的相关操作
先记着,日后整理原创 2014-06-07 12:48:56 · 440 阅读 · 0 评论 -
tf-idf及核心代码c++实现
还是先记个标题,有空再整理。1、简介TF-IDF2、实战:用于二类文本分类3、核心代码c++原创 2013-12-11 11:11:54 · 2448 阅读 · 4 评论 -
为什么要有复制构造函数?
对一个简单变量的初始化方法是用一个常量或变量初始化另一个变量,例如: int m = 80; int n = m; 我们已经会用构造函数初始化对象,那么我们能不能象简单变量的初始化一样,直接用一个对象来初始化另一个对象呢?答案是肯定的。我们以前面定义的Point类为例: Point pt1(15, 25); Point pt2 = pt1;后一个语句也可以写成:原创 2014-06-10 15:40:06 · 1223 阅读 · 0 评论 -
派生类的构造函数
1 先调用基类构造函数,显示调用,否则tiao'yong原创 2014-06-11 10:22:07 · 480 阅读 · 0 评论 -
探究string结尾有木有'\0'
string型字符串的结尾到底有没有结束标识符'\'string a("aas"); string b(3, 'a'); string c = "asd"; string d; d = a; system("pause");原创 2014-06-19 21:15:29 · 1528 阅读 · 0 评论 -
堆内存和栈内存(待整理……)
参考:http://blog.youkuaiyun.com/abcjennifer/article/details/39780819未完待续……堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似原创 2014-10-04 20:12:34 · 853 阅读 · 0 评论