![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++Primer
文章平均质量分 92
崔楠
Do not lose heart, you will be successful sooner or later.
展开
-
C++随机数的产生
最近经常有用到随机数,比如做快排的时候,但每次都是直接rand(),没有真正搞懂过随机数啊,种子啊什么的,这回来完整的学习一些。rand():在0-RAND_MAX之间随机产生一个数。头文件为stdlib.hRAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相...原创 2020-04-10 16:11:33 · 395 阅读 · 0 评论 -
C++ priority_queue自定义类型建堆
自定义类型需要重写仿函数,告诉队列应该怎么比较下面进行了一个测试struct Node{ int a; int b; Node(int x = 0, int y = 0) :a(x), b(y) {}};struct cmp{ bool operator()(Node n1, Node n2) { if (n1.a == n2.a) return n1.b > n...原创 2020-04-06 09:44:51 · 980 阅读 · 0 评论 -
中序遍历,后序遍历非递归
比想象中的简单。。。#include<iostream>#include<stack>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};...原创 2020-02-25 22:01:32 · 76 阅读 · 0 评论 -
基础知识
mark如何让类只能在堆上分配对象虚表原创 2020-02-25 12:03:28 · 68 阅读 · 0 评论 -
C++11新特性(日常记录,写的比较简略)
1.C++11新特性1.Lambda 表达式,用于创建匿名函数的。既可以减少函数数量,又会让代码变得清晰易读。[](实参)->return type {body}[] // 不捕获任何外部变量[=] // 以值的形式捕获所有外部变量[&] // 以引用形式捕获所有外部变量2.自动推导auto和decltype新的操作符 decltype 可以从一个表达式中“俘获”...原创 2020-02-24 22:38:55 · 113 阅读 · 0 评论 -
C++ Primer06类中有三剑客
总归是考完试了。终于可以继续C++ Primer之旅了。到上一篇文章为止,已经复习完了类的一些基本特性,从本章开始,属于类的一些进阶特性了。这回我们将会看到 拷贝构造函数,拷贝赋值运算符,析构函数。说实话,真的是看到第二遍才真正理解了一些东西。第一遍看的糊里糊涂的。。这回话好像有点多,赶快开始吧。前言在一个类中,除了前面介绍的构造函数外,其实还有 拷贝构造函数、拷贝赋值运算符、移动构造函数...原创 2020-02-19 13:45:56 · 299 阅读 · 0 评论 -
C++ Primer16 顺序容器
。。。原创 2020-02-19 13:40:28 · 226 阅读 · 0 评论 -
C++Primer15 IO库
第14讲对标准库做了一些简单的介绍,从这一讲开始依次对各个标准库进行详解。这一讲是IO库IO库为了支持不同种类的IO处理操作,C++定义了多种IO类型。iostream定义了用于读写流的基本类型。istream 从流读取数据ostream 向流写入数据fstream定义了读写命名文件的类型。ifstream 从文件读取数据ofstream 向文件写入数据sstream定义...原创 2020-02-19 13:40:12 · 124 阅读 · 0 评论 -
C++ Primer14 标准库
类的部分我们就暂时先到这里,因为文本查询程序以及Basket类都涉及到标准库,所以,从今天开始,我们先来把标准库复习一下。标准库类型 stringstring对象的初始化string s1;//1 默认初始化,s1为空串string s2(s1);//2string s2 = s1;//3string s3("value");//4string s3 = "value";//5 ...原创 2020-02-19 11:33:45 · 313 阅读 · 0 评论 -
C++ Primer13 继承中类的作用域 继承体系的构造函数和拷贝控制
…原创 2020-02-19 11:33:59 · 164 阅读 · 0 评论 -
C++ Primer12抽象基类
继续昨天的类型转换与继承我们可以将基类的指针和引用绑定到派生类对象上。当使用基类的引用或指针时,实际上我们并不清楚我使用的对象到底是基类对象还是派生类对象。静态类型和动态类型例如item.net_price(),它的静态类型是Quote&,动态类型则根据传入的实参来决定。如果传入的是Bulk_quote,则动态类型为Bulk_quote。如果表达式既不是引用也不是指针,则它的动态...原创 2020-02-19 11:33:06 · 156 阅读 · 0 评论 -
C++ Primer11类中的继承
继承通过继承联系在一起的类构成一种层次结构,根部的为基类,其他类为派生类。基类负责定义在层次关系中,所有类共同拥有的成员。派生类定义各自特有的成员。虚函数基类将类型相关的函数与派生类不做改变直接继承的函数区别对待。对于某些函数,基类希望派生类定义自己合适的版本,此时基类将这些函数声明为虚函数。 派生类必须在其内部对 所有重新定义的虚函数进行声明 。在C++11新标准中,我们可以使用over...原创 2020-02-19 11:32:33 · 218 阅读 · 0 评论 -
C++ Primer10移动构造函数
当一个对象被用作右值的时候,用的是对象的值(内容)。当对象被用作左值,用的是对象的身份(在内存中的位置)。所谓右值引用,就是必须绑定到右值的引用。右值引用:只能绑定到一个将要销毁的对象上。它也不过是某个对象的另一个名字而已。左值与右值明显的区别:左值有持久的状态,右值要么是字面常量,要么是在表达式求值过程中创建的临时对象。move函数告诉编译器:我们有一个左值,但我们希望像一个右值一样处理...原创 2020-02-19 11:32:09 · 181 阅读 · 0 评论 -
C++ Primer08邮件管理类
一般的做法是:两个类的头文档之中,选一个包含另一个类的头文档,但另一个头文档中只能采用class ;的申明形式,而在实现文档中(.cpp)中包含头文档...原创 2020-02-19 11:31:37 · 326 阅读 · 0 评论 -
C++ Primer09动态内存管理类
动态内存管理类上一节咱们写了邮件管理类。这一节要写一个动态内存管理类。前言如果一个类需要在运行时使用可变大小的内存空间,也就是这个类的数据成员,它不一定需要存储多少个。这样的话,我们一般使用标准库来存储数据。但有的时候,我们需要自己进行内存分配。还记得之前说的吗?只要需要自己进行内存分配。那必然,这个类会存在析构、拷贝构造、拷贝赋值运算符函数。跟前面的邮箱管理类一样,这一套函数是存在功能...原创 2020-02-19 11:31:18 · 192 阅读 · 1 评论 -
C++ Primer07拷贝控制与资源管理
一个丑陋的Employee类#pragma once#include<iostream>#include<string>using namespace std;class Employee{ friend ostream& print(const Employee& em, ostream& out);public: Employe...原创 2020-02-19 11:30:48 · 119 阅读 · 0 评论 -
C++ Primer05其他形式构造函数与静态类型
新一年的第一天,今年注定会是不平凡的一年。加油了!今天我们将会看到:构造函数初始化列表、委托构造函数、隐式类类型转换、以及类的静态成员。1.构造函数初始化列表我们在声明构造函数时,可以这样: Sales_data(const string& s, unsigned n, double p) { bookNo = s; units_sold = n; revenue =...原创 2020-02-19 11:28:48 · 117 阅读 · 0 评论 -
C++ Primer04类的作用域问题
这回来一些烧脑(ku zao)的在一个阳光明媚的下午,我带着愉快的心情,打开笔记本,但我完全没有想到,我接下来看到的是一些类的比较烧脑(ku zao)的特性。这回我们将会看到:类的声明、其他的友元方式、友元声明与作用域、类的作用域。今天的代码不多,这回不先贴代码了(因为没有完整的类),来,开始吧!1.类类型每一个类定义了唯一的类型。对于两个类来说,即使他们的成员完全一样,这两个类也是不同...原创 2020-02-19 11:27:34 · 110 阅读 · 0 评论 -
C++ Primer03类的其他特征
来继续探索一些类的其他特征这一章会出现,类型成员,内联函数 ,可变数据成员,重载,返回this的成员函数,基于const的重载。还是老样子,先贴代码Screen.h#pragma once#include<iostream>using namespace std;class Screen{public: typedef size_t pos; //类型成员 typ...原创 2020-02-19 11:27:05 · 149 阅读 · 0 评论 -
C++ Primer02构造函数与友元
构造函数与友元上一篇的类其实都不能算是个类,连构造函数都没有,连访问控制都没有,这类没法用啊(虽然编译器会自动生成默认的构造函数)。今天,我们就来加上它们。顺便再来个友元。还是,先直接贴代码。Sales_data.h#pragma once#include<iostream>using namespace std;class Sales_data{ friend is...原创 2020-02-19 11:26:09 · 193 阅读 · 0 评论 -
C++ Primer01从类开始
本系列文章主要对C++Primer进行一个复习前一段时间花了两个月时间把这本数啃了个差不多,一个月过去了,好像忘记了不少,尤其是关于类的部分(因为暂时也用不到)。但眼看着就要面临找实习找工作了,于是想再熟练一边,并通过博客记录,以便今后忘了的时候翻阅。又因为之前是按顺序看的,看到类那块儿已经精疲力尽了。。。。所以这次换个方式,倒着往前看,也就是先从类看起。话不多说,开始吧。第七章:类这一章...原创 2020-02-19 10:47:04 · 192 阅读 · 1 评论