
C++
C++的各种基础知识讲解
Pink&Sakura
C、C++、Java、前端
展开
-
算法题,统计1~n之间,含有某个数字的树共有多少个、计算某个数的位数
1、先来实现计算某个数的位数下面是代码:#include<iostream>using namespace std;int main() { int num = 0; while (cin >> num) { int m = 0; int flag = 1; while (flag) { num = num / 10; m++; if (num == 0) { flag = 0; } } cout <&l原创 2022-03-20 15:06:42 · 504 阅读 · 0 评论 -
二分查找C++
#include<iostream>using namespace std;int BinarySearch(int arry[],int target){ int l = 0; int r = sizeof(arry) - 1; while (l <= r) { int mid = (l + r) / 2; if (arry[mid] == target) return mid; else if (arry[mid] < target) l = mid.原创 2022-01-22 18:26:08 · 351 阅读 · 0 评论 -
C++的迭代器以及它的用法
迭代器:是一种可以遍历容器元素的数据类型,它是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。迭代器(Iterator)是指针(pointer)的泛化,它允许程序员用相同的方式处理不同的数据结构(容器)。(1)迭代器类似于C语言里面的指针类型,它提供了对对象的间接访问。(2)指针是C语言中的知识点,迭代器是C++中的知识点。指针较灵活,迭代器功能较丰富。(3)迭代器提供一个对容器对象或者strin.原创 2021-12-05 09:57:30 · 7883 阅读 · 1 评论 -
一个程序详细介绍向量vector的使用方法
#include<iostream>#include<vector>#include<algorithm>#include<assert.h>#include<windows.h>//染色using namespace std;//随机创建数组并赋值给向量容器// 生成有n个元素的随机数组,每个元素的随机范围为[rangeL, rangeR] 闭区间void* create(vector<int> &v) {.原创 2021-12-05 00:10:00 · 363 阅读 · 0 评论 -
编写计数器Counter类,对其重载运算符“+”。
typedef unsigned short USHORT;#include<iostream>using namespace std;class Counter{public: Counter(); Counter(USHORT initialValue); ~Counter(){} USHORT getValue()const { return value; } void setValue(USHORT x) { value = x; } Counter operat.原创 2021-06-27 18:59:57 · 2418 阅读 · 0 评论 -
编写一个哺乳动物类,派生出狗类,二者都有speak成员,该函数在基类被声明为虚函数
#include<iostream>using namespace std;class Mammal{public: virtual void speak() { cout << "ohohoh~~~~" << endl; }};class Dog:public Mammal{public: void speak() { cout << "woof woof~~~" << endl; }};int mai.原创 2021-06-28 18:55:08 · 2306 阅读 · 0 评论 -
基于链存储结构的图书信息表的图书去重
基于链存储结构的图书信息表的图书去重描述出版社出版的任何一本图书的书号(ISBN)都是唯一的,即图书表中不允许包含书号重复的图书。定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息表的创建(书号可能重复),然后进行图书的去重,即删除书号重复的图书(只保留第一本),最后输出去重后所有图书的信息。输入总计输入n+1行,其中,第一行是图书数目n,后n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格(书..原创 2021-06-29 15:18:06 · 622 阅读 · 0 评论 -
北林oj代码C++实验七
Reading papers描述论文 "Fair Allocation of Scarce Medical Resources in the Time of Covid-19" 探讨了Covid-19疫情中稀缺医疗资源分配的公平性问题。现摘取其中一段,请使用C++字符串流对其进行分析,完成以下功能:统计这段文字的单词总数(以空格分隔为准) 统计这段文字的标点总数(仅考虑半角句号、逗号、双引号)注意本题要求:main函数已写好如下,只提交readPapers()函数 头文件需由自己包原创 2021-06-26 17:55:40 · 2835 阅读 · 3 评论 -
北林oj实验一续(1)
评分程序描述为一门课写一个评分程序,评分原则如下:(1)有两次随堂考试,每次满分50分;(2)有一次期中考试和一次期末考试,每次满分100分;(3)期末考试占总评成绩的50%,期中考试占总评成绩的25%,两次随堂考试总共占25%;(4)总评成绩90~100分为A,80~89分为B,70~79分为C,60~69分为D,低于60分为E;设计一个Socre类,数据成员如下:string name;//记录学生姓名double s[4];//存储4次成绩,s[0]和s[1]存原创 2021-06-29 14:45:14 · 726 阅读 · 0 评论 -
综合实验8
InputOutput描述设计一个保存你个人信息的类,包含姓名和年龄。并使用以下代码测试int main(){ string name; int year; cin >> name >> year; PersonInfo info(name, year); cout << "I am " << info.Name() << ", " << info.Age() &l原创 2021-06-28 17:47:59 · 936 阅读 · 0 评论 -
实验一类和对象(续一)
#include<iostream>using namespace std;class Base1 {public: virtual void display() { cout << "Base1::display()" << endl; }};class Base2 :public Base1{public: void display() { cout << "Base2::display()" << end.原创 2021-06-29 14:27:20 · 450 阅读 · 2 评论 -
俄罗斯方块(C++大作业)
源代码效果图:#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>#include<vector>#include<fstream>#include <windows.h>#include <conio.h>#include<string>using namespace std;struct Co..原创 2021-07-15 18:52:57 · 541 阅读 · 0 评论 -
C++实验六String类和STL
StringSort描述编写程序,利用std::sort完成一个字符串(std::string类型)的排序(降序)并输出。输入输入一行:由大小写字母和数字组成的字符串。输出输出排序后的字符串。输入样例 1abcde输出样例 1edcba#include<iostream>#include<string>#include<vector>#include<ctype.h>#include<.原创 2021-06-26 17:51:12 · 1654 阅读 · 0 评论 -
数据结构算法练习题
89787302257646 Data-Structure 35.009787302164340 Operating-System 50.009787302219972 Software-Engineer 32.009787302203513 Database-Principles 36.009787810827430 Discrete-Mathematics 36.009787302257800 Data-Structure 62.009787811234923 Compiler-Prin.原创 2021-10-16 20:33:14 · 450 阅读 · 0 评论 -
实验一类和对象
代码一(露婷)#include<iostream>#include<iomanip>#include<cmath>using namespace std; const double PI = acos(-1.0);class Circle {private: double r; double s;public: void setr(double xr) { r = xr; } void calcu(){ s...原创 2021-06-29 14:54:08 · 372 阅读 · 0 评论 -
综合实验(续)
AdvancedInheritance描述不同的动物既有共性也有个性。鸟类会飞,鱼会游泳。请设计类的层次结构进行表示,并通过以下测试int main(){ Animal *animal; string type, color; bool Osteichthyes, daytime; cin >> type >> color >> Osteichthyes; Fish fish(type, color, Ostei原创 2021-06-28 18:00:42 · 795 阅读 · 3 评论 -
实验四运算符重载
Singer类描述实现一个Singer类,通过以下测试:int main(){Singer s1,s2;cin>>s1>>s2;cout<if(s1>s2)cout<else if(s1==s2)cout<elsecout<return 0;}输入输入包含两行,第一行为歌手s1的信息,第二行为歌手s2的信息,每位歌手的信息包括姓名(不包含空格)、性别、年龄 和 分数;姓名、性别、年龄原创 2021-06-26 17:30:00 · 781 阅读 · 0 评论 -
基于链式存储结构的图书信息表的逆序存储
基于链式存储结构的图书信息表的逆序存储描述定义一个包含图书信息(书号、书名、价格)的链表,读入相应的图书数据来完成图书信息表的创建,然后将读入的图书逆序存储,逐行输出逆序存储后每本图书的信息。输入输入n+1行,第一行是图书数目n,后n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号和书名为字符串类型,价格为浮点数类型。输出总计n行,第i行是原有图书表中第n-i+1行的图书的信息(书号、书名、价格),每本图书原创 2021-06-29 15:16:01 · 672 阅读 · 0 评论 -
基于顺序存储结构的图书信息表的创建和输出
基于顺序存储结构的图书信息表的创建和输出描述定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。输入输入n+1行,其中前n行是n本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。最后第n+1行是输入结束标志:0 0 0(空格分隔的三个0)。其中书号和书名为字符串类型,价格为浮点数类型。输出总计n+1行,第1行是所创建的图书表中的图书..原创 2021-06-29 15:13:40 · 3878 阅读 · 1 评论 -
C++实验五模板
Swap描述用模板函数Swap实现对不同类型的数据进行交换。并使用如下主函数测试。int main(){ int a1, a2; std::cin >> a1 >> a2; Swap(a1, a2); std::cout << a1 << "," << a2 << std::endl; double b1, b2; std::cin >> b1 >原创 2021-06-26 17:44:51 · 2089 阅读 · 0 评论 -
实验二友元类
名单类描述已知日期类的定义如下:class Date //日期类{private: int Date_year; //年 int Date_month; //月 int Date_day; //日public: Date(int year=2000, int month=1, int day=1); void show(); //以“年-月-日”格式输出年月日 ~Date();};名单类中含有日期原创 2021-06-29 15:01:30 · 822 阅读 · 0 评论 -
实验一类和对象(续)
过道和栅栏的造价描述一矩形体育场如下图所示,现在需在其周围建一矩形过道,并在四周围安上栅栏。栅栏价格为50元/米,过道造价为240元/平方米。过道宽为1.5米,体育场的长宽由键盘输入。体育场和矩形过道都是如下Rectangle的对象,请实现以下Rectagnle类,编写main函数计算并输出过道和栅栏的造价。class Rectangle{private: double length; //长 double width; //宽public:原创 2021-06-29 14:36:20 · 675 阅读 · 0 评论 -
实验三虚继承
TableTennisPlayer描述编写TableTennisPlayer类和RatedPlayer类(RatedPlayer类继承TableTennisPlayer类),其中TableTennisPlayer类的定义如下所示:class TableTennisPlayer{private:string firstname;string lastname;bool hasTable;public:TableTennisPlayer(const string &原创 2021-06-29 15:06:55 · 710 阅读 · 0 评论 -
图书信息管理系统C++
实验要求:实验代码;#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <fstream>#include <iomanip>#include <ctype.h>using namespace std;//图书结构体struct Book { double price; .原创 2021-09-16 13:29:34 · 2102 阅读 · 0 评论 -
C++ 的友元函数的使用方法
友元函数在类里边但是并不属于类,而是一个独立的函数,他可以访问类里的私有数据成员友元函数的声明写在类里面,定义写在类外面,友元函数的参数:对哪一个类的成员进行访问,参数就是那个类的对象#include<iostream>using namespace std;class Student{private: int age;public: friend void PrintAge(Student stu);//友元函数的参数是类中的一个对象 void SetAge(i...原创 2021-06-23 15:42:33 · 906 阅读 · 0 评论 -
详细讲解虚继承
虚继承的作用:防止产生二义性先来看一看下面的一段代码吧:#define _CRT_SECURE_NO_WARINGS#include<iostream>#include<string>using namespace std;class Grandfather{public: Grandfather() { cout << "爷爷的构造函数" << endl; } ~Grandfather() { cout << "爷爷的析原创 2021-06-23 09:01:51 · 7269 阅读 · 1 评论 -
多重构造函数中构造函数,析构函数的调用顺序
代码:#include<iostream>#define _CRT_SCURE_NO_WATNINGSusing namespace std;class A{public: A() { cout << "A的构造函数" << endl; } ~A() { cout << "A的析构函数" << endl; }};class B{public: B() { cout << "B的构造函数" <<原创 2021-06-18 14:22:40 · 140 阅读 · 0 评论 -
C++的继承使用方法
代码:#include<iostream>#define _CTR_SECURE_NO _WARNINGSusing namespace std;//鸟类class CBird{public: void fly() { cout << "I can fly" << endl; } void breath() { cout << "I can breath" << endl; }};//鱼类class CFish{p原创 2021-06-18 14:12:17 · 1134 阅读 · 0 评论 -
C++继承性,提供姓名和密码然后判断登录是否成功
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;class Employee{public: int m_id; char m_name[20]; char m_department[64]; void print() { cout << "欢迎打卡" << endl; }};class Operator :public Employee{public: .原创 2021-06-18 13:58:39 · 281 阅读 · 0 评论 -
详细讲解C++的拷贝构造函数
拷贝构造函数使用的三中情况: 当类的一个对象去初始化该类的另一个对象时; 如果函数的形参是类的对象,调用函数进行形参和实参结合时; 如果函数的返回值是类对象,函数调用完成返回时。 ...原创 2021-06-18 08:52:56 · 371 阅读 · 0 评论 -
详细讲解讲解C++的构造函数
一、构造函数的作用:给对象赋初值二、特点:构造函数是特殊的成员函数,名字与类名相同,没有返回值例如:Circle(){ x = y = 0; radius = 1;}原创 2021-06-17 19:29:35 · 210 阅读 · 0 评论 -
C++使用条件运算符和三目运算符进行成绩分级
代码:#include<iostream>using namespace std;int main(){ string scoreGrade;//表示成绩分级 int score; cout << "请输入您的成绩" << endl; while (cin >> score && score >= 0 && score <= 100) { scoreGrade = (score >原创 2021-06-17 18:22:38 · 822 阅读 · 1 评论 -
C++重载“>“符号解题火车类判断那一节车厢人数多
问题:定义火车类,类中有一个变量count纪录火车有多少节车厢,重载“>”事项判断火车中那一列火车的载客人数最多下面是原创 2021-06-17 17:57:19 · 255 阅读 · 1 评论 -
北京林业大学oj用函数模板对不同数据类型进行排序
北京林业大学oj用函数模板对不同类型数据进行排序SortFunctionTemplate描述用模板函数实现数组的输入、排序和输出。并使用如下主函数测试你的模板int main(){ const int LEN = 5; int type; while (std::cin >> type) { switch (type) { case 0: {原创 2021-05-22 23:56:58 · 814 阅读 · 0 评论 -
最详细的讲解C++中指针的使用方法(通俗易懂)
指针的定义与使用函数的缺陷:一个函数只能返回一个值,就算我们在函数里面写多了return语句,但是只要执行任何一条return语句,整个函数调用就结束了。数组可以帮助我们返回多个值,但是数组是相同数据类型的结合,对于不同数据类型则不能使用数组使用指针可以有效解决这个问题,使用指针我们想反回几个值就能返回几个值,想返回什么类型就可以返回什么类型的值。在程序设计过程中,存入数据还是取出数据都需要与内存单元打交道,计算机通过地址编码来表示内存单元。指针类型就是未了处理计算机地址数据的,计算机将内存原创 2021-05-25 17:12:50 · 53626 阅读 · 5 评论 -
流类和流对象
文件基本概念及标准I/O流1、流类和流对象流:是一个抽象的概念,表示信息从源到目的端的流动,数据按顺序从一个对象传送到另一个对象I/O流:就是在外部设备和内存之间稳定可靠的传输数据和解释数据标准流:把键盘和显示器定义为标准设备,针对标准设备实现的输入与输出操作称为标准流标准输入输出流:cin cout clog cerr(非缓冲流,一旦数据流入就立即处理)缓冲流:计算机专门为输入输出设备开辟一个临时存放信息的区域(只有当缓冲区满以后或当输入换行字符是系统才为流中的数据进行...原创 2021-05-24 22:21:05 · 305 阅读 · 0 评论 -
队列使用方法详细讲解
队列详细讲解队列是一种先进先出的线性表,它只允许在表的一段进行插入元素,在表的另一端删除元素,先进先出,插入的一端叫做队尾(back),删除的一段叫做对头(front)队列定义在<queun>头文件中下面代码是队列成员的函数原型://-----容量capacity-----bool empty();//测试是否为空队列size_type size();//返回队列长度//-----元素存取element access----front();//返回对头元素back(原创 2021-05-23 16:21:30 · 2192 阅读 · 0 评论 -
c++中用各种不同的方法来实现交换函数
今天来学习一下c++中用各种不同的方法来实现交换函数第一:#include<iostream>using namespace std;void swap(int a, int b){ int c = a; a = b; b = c;}int main(){ int a = 1; int b = 2; cout << "a=" << a << "b=" << b << endl; swap(a, b);原创 2021-05-22 20:35:27 · 4220 阅读 · 1 评论 -
C++的运算符重载实现两个字符串的连接(+号运算符)其实就是连接两个对象
我们先来了解一下string 和char 两者的区别char 定义字符string 定义字符串我们可以这样定义一个原创 2021-06-17 14:04:58 · 3751 阅读 · 2 评论 -
C++的运算符重载为什么要返回引用
我们先来看一看自增运算符重载的例子:#include<iostream>using namespace std;class Test{private: int m_a;public: Test() { m_a = 0; } //运算符重载返回对象的类型 Test& operator++() { ++m_a; return *this;//意思就是返回对象本身 } //等于号的重载: Test operator=(const int a)原创 2021-06-17 12:34:17 · 1923 阅读 · 2 评论