![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
wxn704414736
这个作者很懒,什么都没留下…
展开
-
c++中的引用
详见https://blog.csdn.net/xiao__tian__/article/details/51814617C++中的引用:引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。引用(reference)是c++对c语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。其格式为:类型 &引用变量...转载 2018-09-13 14:03:14 · 370 阅读 · 0 评论 -
string类
string类是由头文件string支持的(头文件string.h和cstring支持对C-风格字符串进行操纵的C库字符串函数,但不支持string类)。要使用类,关键在于知道它的公有接口,而string类包含的内容很多。更多详见https://blog.csdn.net/mark20170902/article/details/512339441.String类的构造函数和析构函...转载 2018-05-17 10:58:52 · 95 阅读 · 0 评论 -
异常
调用abort() Abort()函数的原型位于头文件cstdlib(或stdlib.h)中,其典型实现是向标准错误流(即cerr使用的错误流)发送消息abnormal program termination(程序异常终止)。它还返回一个随实现而异的值,告诉操作系统(如果程序是由另一个程序调用的,则告诉父进程),处理失败。abort()是否刷新文件缓冲区(用于存储读写到文件中的数据的...原创 2018-05-17 10:33:21 · 136 阅读 · 0 评论 -
C++中的类
一、C++中的类访问控制: 关键字public和private描述对类成员的访问控制。使用类对象的程序都可以直接访问共有部分,但只能通过公有成员函数(或友元函数)来访问对象的私有成员。公有成员函数是程序和对象的私有成员之间的桥梁,提供了对象和程序的接口。 数据隐藏(将数据放在类的私有部分中)是一种封装,将实现的细节隐藏在私有部分中也是一种封装。封装的另一个例子是将类函数...原创 2018-05-03 16:52:06 · 121 阅读 · 0 评论 -
内存中常见异常值的解释(比如0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值 )
转自https://blog.csdn.net/chenlycly/article/details/23708049转自https://blog.csdn.net/mxclxp/article/details/7524176在写C++程序的时候,老实0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab这种提示,不知何解,google之...转载 2018-05-03 10:30:03 · 515 阅读 · 0 评论 -
C++中的成员初始化列表
class Queue{private: //Node is a nestedstructure definition local to this c struct Node { Item item; struct Node * next; }; enum { Q_SIZE = 10 }; Node * front; //pointer to front of Queue Nod...原创 2018-05-09 17:23:05 · 1692 阅读 · 2 评论 -
C++中有关返回对象的说明
当成员函数或独立的函数返回对象时,有几种返回方式可供选择。可以返回指向对象的引用、指向对象的const引用或const对象。1、返回指向const对象的引用 使用const引用的常见原因是旨在提高效率,但何时可以采用这一种方式存在一些限制。如果函数返回(通过调用对象的方法或将对象作为参数)传递给它的对象,可以通过返回引用来提高其效率。Vector Max(const ...原创 2018-05-09 15:01:27 · 1100 阅读 · 0 评论 -
堆排序
算法图解见https://www.cnblogs.com/chengxiao/p/6129630.html#include <iostream>#include<algorithm>using namespace std;void max_heapify(int data[], int i, int heapsize)//以某个节点为根节点的子树进行调整,调整为大顶...转载 2018-04-06 21:52:29 · 123 阅读 · 0 评论 -
单链表的反转
大部分转自https://blog.csdn.net/fx677588/article/details/72357389链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为递归和迭代两种。最近在复习的时候,发现网上的资料都只告诉了怎么做,但是根本没有好好介绍两种方法的实现过程与原理。所以我觉得有必要好好的整理一篇博文,来帮忙大家一步步理解其中的实现细节。 我们知道迭代是从前往后依...转载 2018-04-06 11:36:52 · 564 阅读 · 0 评论 -
堆与栈
部分转自https://blog.csdn.net/foreverhuylee/article/details/38978415堆栈和栈就是一个概念!!!队列是先进先出:就像一条路,有一个入口和一个出口,先进去的就可以先出去。而栈就像一个箱子,后放的在上边,所以后进先出。(堆和它们不同,不存在是先进后出还是先进先出)堆栈空间分配 栈(操作系统):由操作系统自动分配释放 ,存放函数的参...转载 2018-04-17 14:20:07 · 119 阅读 · 0 评论 -
c++中的临时变量
转自https://blog.csdn.net/joey_zengchen/article/details/1566713https://blog.csdn.net/qq_38193597/article/details/70193742 说到临时变量,我们大家也许都挺熟悉, 但是我自己对临时变量的理解却一直存在一个误区。通常情况下,我会把为了做某一件事情而临时创建的一个变量叫做临时...转载 2018-04-17 13:57:42 · 8712 阅读 · 1 评论 -
C++ vector 内存分配与回收机制
转自https://blog.csdn.net/qq_30835655/article/details/60762196转载 2018-04-16 16:35:17 · 449 阅读 · 0 评论 -
Vector与数组的区别
转自https://blog.csdn.net/zyr4712008/article/details/8686565 数组是c++中类似vector的数据结构,它们都可以对一种类型进行储存,既都是容器。虽说两者有相似之处,但也有显著的区别,c++ primer的作者说到,在实际的编程中,我们作为程序员应该避免用到低级数组和指针,而更应该多用高级的vector和迭代器。在程序强调速度的情...转载 2018-03-25 17:23:12 · 3160 阅读 · 0 评论 -
计数排序 桶排序 基数排序
参考https://blog.csdn.net/quietwave/article/details/8008572https://www.cnblogs.com/jingmoxukong/p/4311237.htmlhttps://www.cnblogs.com/jztan/p/5878630.html基数排序 vs 计数排序 vs 桶排序这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差...转载 2018-04-07 15:05:08 · 174 阅读 · 0 评论 -
set和multiset的区别
转自https://blog.csdn.net/hnust_xiehonghao/article/details/7942541https://blog.csdn.net/weixin_35909255/article/details/70757138转载 2018-03-30 09:45:37 · 864 阅读 · 0 评论 -
C++中类的构造函数和析构函数
c++的目标之一是让使用类对象就像使用标准类型一样。为什么使用构造函数? 数据的初始化是非常重要的,未经初始化的数据很多情况下都不是期望的结果,很多忘记初始化的数据是导致错误的根源。构造函数就是提供了一个初始化的地方,可以把初始化数据的代码写在构造函数里。当然允许你可以不写在构造函数里,可以自定义一个方法再去调用,不过构造函数的方便之处在于只要创建了对象,就会自动地调用构造函数,保证...原创 2018-05-04 14:53:49 · 220 阅读 · 0 评论 -
几种for循环
几种for循环void ShowReview(const int &x){ cout << x << " ";}int main(){ vector<int>book = { 1,2,3,4,5,6 }; vector<int>::iterator pr; for (pr = book.begin(); pr != book...原创 2018-05-17 14:01:30 · 201 阅读 · 0 评论 -
泛型编程中的迭代器
STL提供了一组表示容器、迭代器、函数对象和算法的模板。容器是一个与数组类似的单元,可以存储若干个值。STL容器是同质的,即存储的值得类型相同;算法是完成特定任务的处方;迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针;函数对象是类似于函数的对象,可以是类对象或函数指针(包括函数名,因为函数名被用作指针)。 STL不是面向对象的编程,而是一种不同的编...原创 2018-05-17 15:36:06 · 258 阅读 · 0 评论 -
c++中const的作用
转自https://blog.csdn.net/j8121/article/details/51926711在C/C++开发中经常会用到const,这个修饰符。今天就讨论一下它的作用。(1) const用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检查。这个是开发中经常用到的const的最基本的作用。(2) const修饰函数形式参数:当输入参数为用户自定义类型和...转载 2018-09-13 13:50:49 · 3441 阅读 · 0 评论 -
new与malloc的区别
部分转自http://www.cnblogs.com/ywliao/articles/8116622.html部分转自https://blog.csdn.net/nie19940803/article/details/76358673属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。返回类型new操作符内存分配成功时,返回的...转载 2018-06-22 10:31:22 · 206 阅读 · 0 评论 -
C++中的has-a关系
C++的一个主要目标是促进代码重用。公有继承是实现这种目标的机制之一,但并不是唯一的机制,还有其他的方法。其中之一是使用这样的类成员:本身是另一个类的对象。这种方法称为包含(containment)、组合(composition)或层次化(layering)。另一种方法是使用私有或保护继承。通常,包含、私有继承和保护继承用于实现has-a关系,即新的类将包含另一个类的对象。多重继承...原创 2018-05-16 10:07:56 · 3742 阅读 · 1 评论 -
C++中的动态内存与static
class StringBad{private: char *str; int len; static int num_strings;public: StringBad(const char *s); //comstructor StringBad(); //default constructor ~StringBad(); //destructor fri...原创 2018-05-08 16:03:00 · 350 阅读 · 0 评论 -
C++中的特殊成员函数
具体地说,C++自动提供了下面这些成员函数: 默认构造函数,如果没有定义构造函数; 默认析构函数,如果没有定义; 复制构造函数,如果没有定义; 赋值运算符,如果没有定义; 地址运算符,如果没有定义;编译器将生成上述最后三个函数的定义——如果程序使用对象的方式要求这样做。1、默认构造函数 ...原创 2018-05-08 15:26:52 · 1077 阅读 · 0 评论 -
C++中define与const区别
转自https://blog.csdn.net/yingyujianmo/article/details/51206460C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下:用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常量的名字联系起来,define所定义的宏变量在预处理的时候进行替换,在程序中使用...转载 2018-05-21 09:21:53 · 252 阅读 · 0 评论 -
抽象基类
抽象基类(abstract base class,ABC)就是类里定义了纯虚成员函数的类,纯虚函数声明的结尾处为=0。抽象基类必须至少使用一个纯虚函数接口。抽象基类不能创建对象实例,只能当基类被其它类继承。原型中使用=0指出类是一个抽象基类,在类中可以不定义该函数。抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。如果派生类没有重新定义纯虚函数,而派生类只是继承基类的纯虚函数...原创 2018-05-14 15:42:22 · 1373 阅读 · 0 评论 -
C++中的友元函数
C++控制对类对象私有部分的访问。通常,公有类方法提供唯一的访问途径,但有时候这种限制太严格,以致于不适合特定的编程问题。在这种情况下,C++提供了另外一种形式的访问权限:友元。友元有3种:友元函数,友元类,友元成员函数。为什么需要友元?Time Time::operator*(double mult)const{ Time result; long totalminutes...原创 2018-05-07 15:11:33 · 218 阅读 · 0 评论 -
C++中的多态公有继承与虚函数
继承中的 is-a 关系 派生类和基类之间的特殊关系式基于C++继承的底层模型的。实际上,C++有三种继承方式:公有继承、保护继承、私有继承。公有继承是最常用的一种方式,它建立一种is-a关系,即派生类对象也是一个基类对象,可以对基类对象执行的任何操作,也可以对派生类对象执行。用 is-a-kind-of 描述更为准确,即派生类 is-a-kind-of 基类。多态公有继承...原创 2018-05-14 10:33:48 · 681 阅读 · 0 评论 -
C++中的运算符重载
运算符重载是一种形式的C++多态。Time Time::Sum(const Time &t)const{ Time sum; sum.minutes = minutes + t.minutes; sum.hours = hours + t.hours + sum.minutes / 60; sum.minutes %= 60; return sum;} ...原创 2018-05-07 10:05:52 · 299 阅读 · 0 评论 -
C++中的类作用域
在类中定义的名称(如类数据成员名和类成员函数名)的作用域都为整个类,作用域为整个类的名称只在该类中是已知的,在类外是不可知的。因此,可以在不同类中使用相同的类成员名而不会引起冲突。作用域为类的常量class Bakery{private: const int Months = 12; double costs[Months]; ...}; 通...原创 2018-05-06 17:08:29 · 715 阅读 · 0 评论 -
C++类继承的构造函数
类继承,能够从已有的类派生出新的类,而派生类继承了原有类(基类)的特征,包括方法。class RatedPlayer :public TableTennisPlayer{ ...}; 使用公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。因此, 派生类对象存储了基...原创 2018-05-11 20:54:47 · 509 阅读 · 0 评论 -
C++中的this指针
如果希望成员函数对多个对象进行操作,可以将额外的对象作为参数传递给它。如果方法需要显式引用调用它的对象,则可以使用this指针。由于this指针被设置为调用对象的地址,因此*this是该对象的别名。 每个成员函数(包括构造函数和析构函数)都有一个this指针。this指针指向调用对象。如果方法需要引用整个调用对象,则可以使用表达式*this。在函数...原创 2018-05-04 21:27:11 · 138 阅读 · 0 评论 -
STL中map,unordered_map,multimap的区别
转自https://blog.csdn.net/yuanlinhyhy/article/details/60470125map与unordered_map相比:map底层实现为红黑数,undered_map底层实现为哈希表,两者均不能有重复的建,均支持[]运算符map与multimap相比:两者底层实现均为红黑树,但是multimap支持重复的键,不支持[]运算符。更多详见https://blog...转载 2018-03-30 09:41:59 · 591 阅读 · 0 评论 -
std::unique用法 std::substr()用法
std::unique功能:对有序的容器重新排列,将第一次出现的元素从前往后排,其他重复出现的元素依次排在后面返回值:返回迭代器,迭代器指向的是重复元素的首地址#include #include #include #include #include int main() { // remove duplicate elements (normal use)转载 2018-01-30 10:52:42 · 314 阅读 · 0 评论 -
C++STL中vector容器 begin()与end()函数、front()与back()的用法
转自http://blog.csdn.net/duan19920101/article/details/51679517一、begin函数函数原型:iterator begin();const_iterator begin();功能:返回一个当前vector容器中起始元素的迭代器。 二、end函数函数原型:iterator end();const_ite转载 2017-11-29 17:15:06 · 338 阅读 · 0 评论 -
malloc函数介绍
转自http://blog.csdn.net/xw13106209/article/details/4962479原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存转载 2017-11-20 15:49:42 · 257 阅读 · 0 评论 -
链表的基本知识1
链表的声明首先要清楚链表是有数据和指向下一个地址的指针组成的。无论结构体里多少个数据,必须要有一个地址指针typedef struct Node{ ElemType data; struct Node *next;}Node;为什么这个结构体声明为Node,结构体的指针域也是一个Node?typedef struct Node{ ElemType da转载 2017-11-20 15:25:59 · 327 阅读 · 0 评论 -
map与unordered_map的基本操作
map的基本操作:http://blog.csdn.net/cyangc/article/details/23674849unordered_map的基本操作:http://blog.csdn.net/u012530451/article/details/53228098转载 2017-11-20 10:24:56 · 1044 阅读 · 0 评论 -
equal_range()的用法
equal_range()是c++ STL中一种二分查找的方法。vecotornums; int val;auto bounds = equal_range(nums.begin(), nums.end(), val);这里auto是c++的自动类型推断,可以简化操作,例如我们要使用vector的迭代器,就得申明vectorvec;vector::iterator itr原创 2017-11-15 14:17:10 · 4895 阅读 · 0 评论 -
hash_map unordered_map map之间的比较
map与unordered_map的区别见http://blog.csdn.net/orzlzro/article/details/7099231hash_map与unordered_map的区别Since there was no hash table defined in the C++ standard library, different implementors of the stand...转载 2017-11-20 09:37:07 · 205 阅读 · 0 评论 -
hash_map
hash_map介绍转自http://blog.chinaunix.net/uid-20773165-id-1847822.htmlhash_map基于hash table(哈希表)。 哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的转载 2017-11-19 22:10:08 · 126 阅读 · 0 评论