c/c++
闲静时如娇花照水
这个作者很懒,什么都没留下…
展开
-
类的构造,拷贝构造,析构,赋值(string类)
构造函数初始化表的使用规则:如果类存在继承关系,派生类必须在起初始化表里调用基类的构造函数类的const常量只能在初始列表里被初始化,因为他不能在函数体内用赋值的方式初始化类的数据成员的初始化可以采用初始化表或函数体内赋值两种方式,,这两种方式的 效率不完全相同非内部数据类型的成员对象应当采用第一种方式初始化,以获取更高的效率。例如 class A {… A(void); // 无参数构造函...原创 2018-05-05 20:32:46 · 480 阅读 · 0 评论 -
c注释转换
将文件中C语言注释(/**/)转换为C++注释(//),其它内容保持不变input.c// 1.一般情况/* int i = 0; */// 2.换行问题/* int i = 0; */int j = 0;/* int i = 0; *///int j = 0;// 3.匹配问题/*int i = 0;/*xxxxx*/// 4.多行注释问题/*int i=0;in...原创 2018-04-27 19:40:14 · 165 阅读 · 0 评论 -
文件操作函数
fwrite:Writes data to a stream.size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );fread:Reads data from a stream.size_t fread( void *buffer, size_t size, size_t count, FILE...原创 2018-04-27 22:13:38 · 379 阅读 · 0 评论 -
排序算法:1.交换排序之冒泡排序
交换排序: 基本思想:两两比较待排序记录 的关键字,发现两个 记录的次序相反时即 进行交换,直到没有 反序的记录为止。 两种交换排序: (1)冒泡排序 (2)快速排序本文先介绍:冒泡排序 冒泡排序的基本思想 基本思想 : 1. 通过无序区中相邻记 录关键字间的比较和 位置的交换,使关键 字最小的记录如气泡 一般逐渐往上“漂浮” 直至“水面”。 2. ...原创 2018-05-15 21:08:03 · 227 阅读 · 0 评论 -
排序算法:2.交换排序之快速排序
快速排序的基本思想: 1.在待排序的n个记录中任取一个记录(通常取第一个记录)作为基准,把该记录放入适 当位置后,数据序列被此记录划分成两部分,分别是比基准小和比基准大的记录。 2.再对基准两边的序列用同样的策略进行操作void Quicksort(int a[], int s, int t)//对a[s]到a[t]的元素快速排序{ int i = s; int j = t;...原创 2018-05-15 21:36:44 · 233 阅读 · 0 评论 -
排序算法:3.选择排序之堆排序
//构造初始堆(大根堆)void shift(int a[], int low, int high){ int i = low; int j = 2 * i;//a[j]是a[i]的左孩子 int temp = a[i]; while (j <= high) { if (j < high&&a[j] < a[j + 1]) j++;//若...原创 2018-05-15 23:16:38 · 162 阅读 · 0 评论 -
排序算法:5.插入排序之直接插入排序(含二分法)
插入排序 基本思想: 每次将一个待排序的记录,按其关键 字大小插入到前面已经排好序的子表 中的适当位置,直到全部记录插入完 成为止。 介绍两种插入排序方法 : (1)直接插入排序(含二分插入排序) (2)希尔排序直接插入排序 1.假设待排序的记录存放在数组R[0..n-1]中 2.排序过程的某一中间时刻,R被划分成两个子区 间R[0..i-1]和R...原创 2018-05-16 00:13:40 · 382 阅读 · 0 评论 -
AVL树的插入和删除
#pragma once#include<stack>#include<iostream>using namespace std;template<class Type>class AVLTree;template<class Type>class AVLNode{ friend class AVLTree<Type...原创 2018-07-26 20:12:32 · 254 阅读 · 0 评论 -
排序算法:4.选择排序之直接选择排序
#include<iostream>using namespace std;#include<stdio.h>#include<stack>#include<list>#include<assert.h>#define BUFFER_SIZE 256void swap(int *a, int *b){ int tem...原创 2018-08-14 09:26:57 · 204 阅读 · 0 评论 -
排序算法:6.插入排序之希尔排序
#include<iostream>using namespace std;#include<stdio.h>#include<stack>#include<list>#include<assert.h>#define BUFFER_SIZE 256void shellsort(int a[], int n){ ...原创 2018-08-14 10:20:31 · 212 阅读 · 0 评论 -
c++复制构造函数
拷贝构造函数一类特殊的构造函数,具有一般构造函数的所有特性,其形参是本类对象的引用,起作用是使一个已经存在的对象(由复制构造函数的参数指定),去初始化同类的一个对象。初始化对象的每个数据成员都复制到新建立的对象中 普通函数是在对象被创建时被调用,而复制构造函数在以下三种情况下都会被调用 1.当用类的一个对象去初始化该类的另一个对象时 2.如果函数的参数是类的对象,调...原创 2018-04-16 22:13:01 · 197 阅读 · 0 评论 -
静态成员和友元
1.类的静态成员:静态数据成员 静态函数成员class point{public: point(int x = 0, int y = 0) :x(x), y(y) { count++; } point(point &p) { x = p.x; y = p.y; } ~point() { count--; } int getx() { retu...原创 2018-04-24 00:21:44 · 506 阅读 · 0 评论 -
c++知识点总结
1.类 1.类定义的两种形式 2.类和结构体的区别 3.函数重载,封装概念 4.this指针 5.public、protected的区别 6.类的作用范围 7.inline的原理,inline和宏区别 8.面向过程,面向对象区别2.构造函数 1.类和对象的区别 2.冒号语法、构造函数的执行流程(冒号语法需要性,对象初始化和赋初值) 3.对象的内存布局 4.析构函数的执行...原创 2018-04-24 21:57:12 · 200 阅读 · 0 评论 -
c++之继承与派生
1.类的继承与派生 类的定义: class 派生类名:继承方式 基类名1,继承方式 基类名2,...,继承方式 基类名n { 派生类成员声 }; 派生类的过程: 吸收基类成员 改造基类成员 添加新成员2.访问控制(公有,保护,私有继承) public修饰的类成员可以在类外被访问,而protected与private则不可以3.类型兼容原则:类型兼容规则...原创 2018-04-25 02:17:39 · 301 阅读 · 0 评论 -
c++之内联函数
<<c++primer>>中讲到:inline函数 考虑下列 min()函数 int min( int v1, int v2 ) { return( v1 < v2 << v1 : v2 ); } 为这样的小操作定义一个函数的好处是: 1.如果一段代码包含 min()的调用, 那么...原创 2018-05-03 23:59:35 · 188 阅读 · 0 评论 -
排序算法:7.归并排序
归并排序思想 多次将两个或两个以上的有序表合并成一个新的有序表。 最简单的归并:是直接将两个有序的子表合并成一个有序的表。 //归并排序//2-路归并实现void Merge(int R[], int low, int mid, int high){ int *R1; int i = low, j = mid + 1, k = 0;//i,j,k分别为如图所示三部分...原创 2018-05-16 22:55:21 · 186 阅读 · 0 评论 -
排序算法:8.简单计数排序
计数排序的步骤 1、统计数组中每个值为i的元 素出现的次数,存入数组C 的第i项 2、根据C[i],整理排序结果//简单计数排序#define MaxNum 100void CountSort(int R[], int n){ int i, j, k; int C[MaxNum] = { 0 }; for (i = 0; i < n; ++i) { C[R...原创 2018-05-16 23:17:17 · 212 阅读 · 0 评论 -
排序算法:9.基数排序
#include<iostream>using namespace std;#include<stdio.h>#include<stack>#include<list>#include<assert.h>#define BUFFER_SIZE 256//排序之基数排序(先分散,再收集)list<int>...原创 2018-08-14 10:33:08 · 206 阅读 · 0 评论