![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++面向对象程序设计
油醋三椒
StuTan
展开
-
C++中的辅助函数 distance()
函数介绍distance()是常用的一个迭代器操作函数,用来计算两个迭代器之间的距离,它可以接受任何类型的迭代器distance ( map.begin(), map.end() )#include<bits/stdc++.h>using namespace std;map <int ,int> mmp; #define N 100005 int main...原创 2020-02-18 09:26:52 · 5955 阅读 · 0 评论 -
函数模板实现映射表Map(平衡二叉树)
函数模板首先创建一个结构体模板,其中包含两个任意类型变量的元素,一个作为索引,一个作为它本身的值,用来当作平衡二叉树的结点。接着创建一个模板类map,这个map中包含该结构体指针root作为根节点,用来访问平衡二叉树,对平衡二叉树中的元素进行增删查改。其中,在它的成员函数里,设置中序遍历函数,验证该平衡二叉树是否正常工作,也可以查找一个值是存在map中,若在,则返回它的下标值,若不在,则返回-1...原创 2019-12-24 16:05:50 · 991 阅读 · 3 评论 -
函数模板实现链表List(链式存储结构)
模板设计首先创建一个模板类list,这个list中有保护成员变量:头指针、尾指针,作为链表结构,连接所有元素,在设计的过程中,增添整个类的变量指针,可以在成员函数中使用,避免了每次都需要定义的麻烦。有保护成员整形变量rightcnt记录该list中有多少个元素,有迭代器指针成员函数,返回该list的头指针和尾指针,方便我们使用遍历整个list,并对该链表进行增删查改。 其成员函数依然包括其他关于...原创 2019-12-24 15:58:51 · 934 阅读 · 0 评论 -
函数模板实现队列Queue(静态数组)
模板设计首先创建一个模板类queue,这个queue中有保护元素:对应类型元素的指针、记录当前已有多少元素的整形变量count,当queue要插入新的元素时,count自增,直接添加到数组的末尾,删除时,count自减,其对应的指针指向的静态数组删除第一位元素,其余元素均相前移动一位。该类拥有自己的成员函数,用来返回该queue的大小、队首和队尾的元素的值以及判断该队列是否为空。功能设计代...原创 2019-12-24 15:55:15 · 660 阅读 · 0 评论 -
函数模板实现栈Stack(静态数组)
模板设计首先创建一个模板类stack,这个stack中有保护元素:对应类型元素的指针、记录当前已有多少元素的整形变量count,当stack要插入新的元素时,count自增,直接添加到数组的末尾,删除时,count自减即可。该类拥有自己的成员函数,用来返回该stack的大小以及栈顶的元素。功能设计代码main.cpp#include <iostream> using na...原创 2019-12-24 15:50:28 · 644 阅读 · 0 评论 -
函数模板实现线性表Vector(动态数组)
模板设计首先创建一个模板类vector,这个vector中有保护元素:类指针、记录当前已有多少元素的整形变量space,记录该vector当前最大容量的整形变量,其中类指针指向的是一个动态数组,当元素不够存储时,会自动将原数组的容量扩大2倍,在该动态数组上进行添加、删除元素时直接在对该指针指向的数组上直接进行增删查改,该模板类拥有自己的成员函数,它的成员函数是对该类的功能的使用,例如:清空整个v...原创 2019-12-24 15:46:45 · 1098 阅读 · 1 评论 -
函数模板实现查找算法(顺序查找、二分查找)
模板设计顺序查找:遍历整个元素序列,逐个元素与要查找的元素进行比较,若其中有某个元素与该值相等,则查找成功(返回该元素的下标),若遍历完了整个序列,都没有找到与之相等的元素,则返回-1。二分查找:对元素序列进行排序,排序之后,将要查找的值与排序的中间值比较,小于中间值,则到左边查找,大于中间值,到右边查找,递归循环,直到最终找到该值,返回它的下标或者查找序列中只剩下一个值,但它与要查找的值不相...原创 2019-12-24 15:34:11 · 1518 阅读 · 0 评论 -
函数模板实现排序算法(冒泡、快排、堆排)
模板设计简介冒泡排序:对一个一维数组进行两重循环,依次比较两个相邻的元素,如果顺序(如从大到小)错误就把他们交换过来,重复地进行直到没有相邻元素需要交换,则,该元素序列完成排序。快速排序:首先对这个乱序的元素序列设定一个分界值(我设置的是该元素序列的第一位),将该数组分为左右两部分,然后将大于或等于分界值的元素集中到右边,将各元素小于或等于分界值的元素集中到左边,再递归对分界值两边的元素进行排...原创 2019-12-24 15:29:57 · 2555 阅读 · 2 评论 -
C++面向对象程序设计作业
作业要求:完成两个程序,分别实现两个类及类的基本操作(请根据实际需要设计类的成员)。一、创建矩形Rectangle类,有保护的int类型的成员变量r_long长和r_width宽;无参数的构造函数和有参数(参数没有默认值)的构造函数;其他成员函数comp_area()计算并返回矩形的面积,成员函数comp_perimeter()计算并返回矩形的周长,成员函数get_long()返回矩形的长;成员...原创 2019-11-13 13:43:51 · 1252 阅读 · 7 评论 -
C++面向对象程序设计 练习一
1.(3分)下列无法实现类的多态性的是 友元类 虚函数 运算符重载 函数重载2. (3分)关于基类成员在派生类中的访问权限,下列描述不正确的是 在保护继承方式下,基类中私有成员在派生类中转为保护成员 在私有继承方式下,基类中的私有成员在派生类中不能直接访问。 在公有继承方式下,基类中的私有成员在派生类中不能直接访问。 在保护继承方式下,基类中保护成员在派生类中仍为...原创 2019-11-20 14:49:59 · 1352 阅读 · 0 评论