![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Cassie~
hello world!
展开
-
关联式容器
关联式容器是用来存储数据的,与序列式容器不同的是,其存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。键值对用来表示具有一一对应关系的结构,该结构中一般只含两个成员变量key和value,key代表键值,value表示与key对应的信息。比如:现在要建立一个英汉互译的字典,那该字典中必然有英文单词与其对应的中文含义,而且,英文单词与其中文含义是一一对...原创 2020-09-03 18:12:41 · 518 阅读 · 0 评论 -
new 与 malloc 的区别
new 与 malloc 的区别new 操作符从自由存储区(free store)上为对象动态分配内存空间,而 malloc 函数从堆上动态分配内存。new 操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故 new 是符合类型安全性的操作符。而 malloc 内存分配成功则是返回 void *,需要通过强制类型转换将 void * 指针转换成我们需要的...原创 2020-04-21 09:31:53 · 184 阅读 · 0 评论 -
野指针
定义野指针就是指向的位置是不可知的(随机的、不正确的、没有明确限制的)指针。成因指针变量未初始化任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。如果没有初始化,编译器会报错“ ‘point’ may be uninitializedin the function ”。指针释放后...原创 2020-04-19 20:34:10 · 182 阅读 · 0 评论 -
C 和 C++的区别 / struct 和 class 的区别 / 指针和引用的区别 / new 与 malloc 的区别 / 堆和栈的区别 / sizeof 和 strlen 的区别
C++ 的内存管理机制C++ 内存分配方式,五个区:堆区、栈区、自由存储区、全局/静态存储区、常量存储区。不能访问未申请、未初始化的内存、申请失败的内存或者已经释放的内存free 和 delete 后要将指针置空,防止野指针的出现不要忘记释放内存,否则会导致内存泄露不能越界访问内存32 位、64 位系统下各数据类型所占用的内存空间64 位系统下除了指针类型和 long long ...原创 2020-09-05 09:17:51 · 1390 阅读 · 0 评论 -
不用加减乘除做加法。写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。1.使用++,- -运算符class Solution {public: int Add(int num1, int num2) { if (num1 > 0) { while (num1--) num2++; } else { while (num1++) ...原创 2019-12-06 17:13:56 · 247 阅读 · 0 评论 -
C++实现龙贝格求积分算法
#include <iostream>#include <cmath>using namespace std;#define N 20#define MAX 10 //数组存的最大行数#define a 0 //积分上限#define b 1 //积分下限#define eps 1e-6 //精度double f(double x)...原创 2019-09-26 20:47:56 · 5502 阅读 · 1 评论 -
C++实现复化辛普森公式求积分算法
#include<iostream>using namespace std;double fun(double x) { return 4 / (1 + x * x);}double Simpson(double a, double b, int n) { double h = (b - a) / n; double s1 = fun(a + ...原创 2019-09-21 20:53:36 · 9430 阅读 · 4 评论 -
C++实现复化梯形公式求积分算法
#include <iostream>#include <cmath>using namespace std;double X[1000];//保存生成的节点横坐标double Y[1000];//保存生成的节点纵坐标//定义一个数学函数double fun(double x){ return 4 / (1 + x * x);}//分割区间...原创 2019-09-21 20:48:55 · 6774 阅读 · 2 评论 -
C++_开散列哈希表(哈希桶)
开散列概念开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码 归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结 点存储在哈希表中。开散列中每个桶中放的都是发生哈希冲突的元素哈希桶中元素是用链表串接起来的,因此先给出哈希桶的结构开散列与比散列比较应用链地址法处理溢出,需要增设链接指针,似乎增加了存储开销。事...原创 2019-09-07 15:47:48 · 1012 阅读 · 0 评论 -
C++_线性探测的哈希表
不同关键字通过相同哈希哈数计算出相同的哈希地址,该种现象称为哈希冲突或哈希碰撞。把具有不同关键码而具有相同哈希地址的数据元素称为“同义词”。哈希函数引起哈希冲突的一个原因可能是:哈希函数设计不够合理。 哈希函数设计原则:哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时,其值域必须在0到m-1之间哈希函数计算出来的地址能均匀分布在整个空间中,哈希函数应该比较简单...原创 2019-08-31 16:42:24 · 594 阅读 · 0 评论 -
C++_AVL树的概念及实现
AVL树的概念及特点AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis,AVL树是最先发明的自平衡二叉查找树。二叉搜索树(二叉查找树,二叉排序树)或者是一棵空树,或者是具有下列性质的二叉树:若左子树不空,则左子树上所有节点的值均小于它的根节点的值;若右子树不空,则右子树上所有节点的值均大于它的根节点的值;左、右子树也分别为二叉搜索树;没有键值相...原创 2019-08-26 17:33:43 · 202 阅读 · 0 评论 -
C++ _Date类
1.Date类功能实现#include <iostream>#include <cstdbool>using namespace std;class Date{public: Date(int year = 2000, int month = 1, int day = 1); //构造函数 Date(const Date&d); //...原创 2019-03-15 21:48:43 · 421 阅读 · 0 评论 -
string_练习
一、给定两个字符串形式的非负整数num1 和num2,计算它们的和。注意:num1 和num2的长度都小于 5100. num1 和num2 都只包含数字0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库,也不能直接将输入的字符串转换为整数形式。class Solution {public: string add...原创 2019-03-31 11:35:30 · 196 阅读 · 0 评论 -
C++_vector的模拟实现
template <class T>class Vector{public: typedef T* iterator; typedef const T* const_iterator; //构造函数 Vector() :start(nullptr), finish(nullptr), endOfStorage(nullptr) {} //拷贝构造 Vect...原创 2019-04-18 22:25:45 · 151 阅读 · 0 评论 -
C++中的异常处理
本文主要内容有:C语言传统的处理错误方式C++异常的概念C++异常的用法C++自定义异常体系C++标准库异常体系C++异常的优缺点1.C语言传统的处理错误方式终止程序,如assert缺陷:发生内存错误时会终止程序,用户难以忍受。返回错误码缺陷:需要自己去寻找错误。C 标准库中setjmp和longjmp组合实际中C语言基本都是使用返回错误码的方式处理错...原创 2019-07-23 10:19:51 · 248 阅读 · 0 评论 -
C++_二叉搜索树(二叉排序树,二叉查找树)
二叉搜索树的概念二叉搜索树,或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。二叉搜索树的相关操作二叉搜索树的节点定义template<class T>struct BSTNode{BSTNode(const T...原创 2019-08-18 17:08:19 · 536 阅读 · 0 评论 -
C++_红黑树的概念及实现
红黑树的概念红黑树(Red Black Tree) 是一种自平衡二叉搜索树,是在计算机科学中用到的一种数据结构。红黑树在每个节点上增加一个存储位表示结点的颜色,可以是Red或Black。过对任何一条从根到叶子的路径上各个节点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。红黑树在二叉搜索树的基础上还满足:每个节点不是红色就是黑色;根节点是黑色的;如果一...原创 2019-10-25 08:38:22 · 370 阅读 · 0 评论 -
C++_用红黑树实现关联容器map和set
template <class K,class V>class Map{private: struct MapKeyOfValue { const K& operator()(const pair<K, V>& data) { return data.first; } };public: typedef typename ...原创 2019-08-21 09:52:45 · 317 阅读 · 0 评论 -
C++_BitMap(位图)
位图的概念数据是否在给定的整形数据中,结果是在或者不在,刚好是两种状态,可以使用一个二进制比特位来代表数据是否存在的信息,如果二进制比特位为1,代表存在,为0代表不存在。位图,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。位图的实现class BitSet{public: BitSet(size_t range) ...原创 2019-08-26 15:28:44 · 1478 阅读 · 0 评论 -
C++_简易学生成绩管理系统
简易学生成绩管理系统,内含小bug,欢迎评论。#include <iostream>#include <conio.h>#include <iomanip>#include <string>#include <cstdlib>#include <fstream>using namespace std;#de...原创 2019-02-02 10:54:46 · 1136 阅读 · 0 评论