c、c++
文章平均质量分 68
japomica
这个作者很懒,什么都没留下…
展开
-
abs()函数
abs函数 描述返回数字的绝对值。语法 abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。 说明 1)数字的绝对值是其无符号的数值大小。例如,Abs(-1) 和 Abs(1) 都返回 1 。 而对于在matlab中相似的函数double,do原创 2013-06-07 14:24:33 · 19519 阅读 · 0 评论 -
STL源码剖析---STL容器特征总结(含迭代器失效)
转载别人的,很有价值~~~~查看原网页点击此处Vector1、内部数据结构:连续存储,例如数组。2、随机访问每个元素,所需要的时间为常量。3、在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。4、可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。5、迭代器失效插入:vect原创 2013-07-29 18:47:13 · 493 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽原创 2013-07-14 21:24:42 · 422 阅读 · 0 评论 -
STL源码剖析---list
灰常给力的STL源码剖析~查看原网页点击这里 相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。 list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接原创 2013-07-29 18:35:25 · 554 阅读 · 0 评论 -
STL源码剖析---deque
值得一看!查看原网页点击这里 一、deque的中控器 deque是连续空间(至少逻辑上看来如此),连续线性空间总令我们联想到array或vector。array无法成长,vector虽可成长,却只能向尾端成长,而且其所谓的成长原是个假象,事实上是(1)另觅更大空间;(2)将原数据复制过去;(3)释放原空间三部曲。如果不是vector每次配置新空间时都有留下一些余裕,其成长原创 2013-07-29 18:39:43 · 622 阅读 · 0 评论 -
STL容器学习总结
借用别人的东西,也是一种积累~~~ 本文主要讨论C++标准库中的顺序容器及相应的容器适配器,这些内容主要涉及顺序容器类型:vector、list、deque,顺序容器适配器类型:stack、queue、priority_queue。 标准库中的容器分为顺序容器和关联容器。顺序容器(sequential container)内的元素按其位置存储和访问,顾名思义,这些内部元素是顺原创 2013-07-29 19:35:05 · 436 阅读 · 0 评论 -
C++_运算符重载
什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof友元函数和成员函数的使用转载 2013-08-24 18:02:48 · 525 阅读 · 0 评论 -
C++常量折叠
今天回顾了大学这几年学习C++的点点滴滴,在回顾了“常量折叠”这里时,突然困惑了,当时学习这点知识时的理解是:可折叠的常量像宏一样,在预编译阶段对常量的引用一律被替换为常量所对应的值,就和普通的宏替换没什么区别,并且,编译器不会为该常量分配空间。现在回顾起来,当时是多么的天真,被现象迷惑了,常量折叠确实会像宏一样把对常量的引用替换为常量对应的值,但是,并非不给该常量分配空间,如下代码:#def转载 2013-08-28 19:58:01 · 459 阅读 · 0 评论 -
<stdlib.h>
输入样式:C语言模式:#include C++样式:#include 1函数名称:calloc函数原型: void * calloc(unsigned n,unsigned size);函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size函数返回: 分配内存单元的起始地址,如果不成功,返回02函数名称:free函数原型: vo原创 2013-08-28 20:41:18 · 1326 阅读 · 0 评论 -
c++中,引用和指针的区别
指针和引用的区别(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. String & rs = string1; 由于没有所谓的 null reference 所以所以在使用前不需要进行测试其是转载 2013-08-28 17:10:26 · 420 阅读 · 0 评论 -
C++中this指针的用法.
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 this->month = mn; (*this).month = mn; } 1. this只能在成员函数中使用。全局函数,静态函数都转载 2013-08-28 17:09:32 · 464 阅读 · 0 评论 -
STL源码剖析---vector
某位大牛写的,很有学习价值~原址vector容器概述 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内原创 2013-07-29 18:13:51 · 426 阅读 · 0 评论 -
C++_const限定修饰符
常量==================================为了防止程序员因不小心的错误而修改掉某个变量的值,我们可以给这类型的变量加上const限定修饰符。 它把一个对象转换成了一个常量(constant)。这样在程序中任何改变这个值的企图都将导致编译错误。因此它被称为是只读的。语法:const int bufSize = 512;常量必须初始化: 因转载 2013-07-28 09:46:21 · 419 阅读 · 0 评论 -
C++_字符串类型
C++提供了两种字符串的表示。C风格字符串=============================字符串被存储在一个字符数组中,一般通过一个char*类型的指针来操纵它。所以一般看到一个char*类型的指针,那就是C风格的字符串。该char*类型的指针指向的就是是该字符数组的第一个元素。如const char *st = "The expense of spiri转载 2013-07-28 09:45:19 · 479 阅读 · 0 评论 -
#include<algorithm>里的函数
#include里的函数#include 非修改性序列操作(12个) 循环对序列中的每个元素执行某操作for_each() 查找在序列中找出某个值的第一次出现的位置find() 在序列中找出符合某谓词的第一个元素find_if() 在序列中原创 2013-07-14 21:17:02 · 417 阅读 · 0 评论 -
标准C++中的string类的用法总结
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstri原创 2013-07-29 20:29:21 · 418 阅读 · 0 评论 -
STL sort源码剖析
STL sort源码剖析STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。本文先分别介绍这个三个Sort,再整合分析STL sort算法(以上三种算法的综合) --Introspect原创 2013-07-14 21:31:04 · 553 阅读 · 0 评论 -
浅谈C++多态性
大神的东西,借过来一用~~~~ C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是原创 2013-07-29 19:31:23 · 407 阅读 · 0 评论 -
C程序实践 哈夫曼(Huffman)树代码
/*Slyar2009.10.29*/ #include #include #include #define N 255#define M 2*N - 1 /* 运行成功标记 */int ok = 0; /* 保存原文件名 */char file[20] = {}; /* 哈夫曼树节点类型 */typedef struct{ int data; /转载 2013-07-31 08:30:54 · 771 阅读 · 0 评论 -
使用STL的next_permutation函数生成全排列(C++)
文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。 下午研究了一下全排列算法,然后发现C++的STL有一个函数可以方便地生成全排列,这就是next_permutation在C++ Reference中查看了一下next_permutation的函数声明:#include bool next_permutation转载 2013-07-31 08:23:17 · 766 阅读 · 1 评论 -
C/C++语言中的位运算
数据在计算机中都是二进制存储的,都可进行按位运算,至于使用的何种编码规则,运算后的结果就不同了。在微机中存储数据有定点表示法和浮点表示法两种。定点表示法是将小数点固定在某一位置,通常有纯小数和纯整数两种方法。我们平时处理的整数就是纯整数这种表示,比于int,char,long类型等。浮点表示法主要用来表示实数,在C/C++中用来表示float和double型。本文主要针对纯整数的位运算,对于计算机原创 2013-08-02 09:58:47 · 822 阅读 · 0 评论 -
x&(-x) Lowbit(x)
刚学树状数组,看到这里的时候懵了。经过询问,发现,原来在程序运行时,数据用的都是补码,于是解决了int Lowbit(x){ return x&(-x);}如:x =1: 1 &-1(设位数为8)0000 0001 & 1111 1111 = 1x = 6:6 & -6 0000 0110 &1111 1010 = 2总结一下,原创 2013-08-03 09:27:59 · 557 阅读 · 0 评论 -
C++_标准数组-向量
vector是向量类型,它是一种对象实体,具有值,所以可以看作是变量。 它可以容纳许多其他类型的相同实体,如若干个整数,所以称其为容器。 vector类与一般的Array类的区别在于: 1. vector支持“向现有的数组元素赋值”的概念以及“插入额外元素”的概念--即vector数组可以在运行时动态增长。 2. 代表了更加广泛的应用。它只提供了最小集的操作(如等于、小于操作符转载 2013-07-28 09:33:42 · 1043 阅读 · 0 评论 -
C++_引用类型
引用(reference)有时候也称作别名(alias),它可以用作对象的另一个名字。通过引用我们可以间接地操纵对象,使用方式类似于指针,但是不需要指针的语法。 在实际程序中,引用主要被用作函数的形式参数--通常将类对象传递给一个函数。 引用必须被初始化。 语法:int ival = 1024;// ok: refVal 是一个指向ival的引用int &refV转载 2013-07-28 09:47:59 · 548 阅读 · 0 评论 -
<climits>
头文件定义的符号常量CHAR_MIN char的最小值SCHAR_MAX signed char 最大值SCHAR_MIN signed char 最小值UCHAR_MAX unsigned char 最大值SHRT_MAX short 最大值SHRT_MIN short 最小值USHRT_MAX原创 2013-08-28 20:46:13 · 459 阅读 · 0 评论