C++
文章平均质量分 93
枳洛淮南✘
没有人生来就是弱者
展开
-
C++中的继承(面向对象三大特征之一)
一、继承的概念及定义一、继承的概念及定义1. 继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。#include <iostream>#include <string>using namespace std;//继承cl原创 2021-01-21 22:41:43 · 354 阅读 · 2 评论 -
文件管理(IO流)(C语言与C++区别)
文件管理(C语言):一、 哪些可以放在头文件中,哪些不可以放在头文件中1) 函数声明可以放在头文件中,函数定义(函数体)不可以放在头文件中例如:Int Find();2) 全局变量声明(extern)可以放在头文件中,函数定义(函数体)不可以放在头文件中例如:extern struct SStud g_stud[100];3) 常量声明(定义)可以放在头文件中例如:#define COUNT sizeof(g_stud[100])/sizeof(g_stud[0])4) 结构体声明(定义)可原创 2021-01-21 10:53:16 · 720 阅读 · 2 评论 -
二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。
二货小易有一个W*H的网格盒子,网格的行编号为(0到H-1),网格的列编号为(0到W-1)。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)输出描述:输出一个最多可以放的蛋糕数Tips:数原创 2020-11-28 18:33:24 · 490 阅读 · 2 评论 -
C++:vector的介绍及其模拟实现
vector基本介绍vector内置函数介绍(C++11)成员函数迭代器容量元素存取修改模拟实现基本介绍C++标准库类模板vector是一种更加健全的数组替代品,它它提供了很多C风格的基于指针的数组所没有的能力在默认情况下,一个整型vector对象的所有元素都被设置为0可以用vector<数据类型>名称 (大小);形式的声明来定义一个能够存储任何数据类型的vector对象类模板vector的成员函数size返回调用它的vector对象的元素个数使用方括号[]可以访问或修改vecto原创 2020-11-25 16:02:04 · 325 阅读 · 1 评论 -
用字符串实现加减法(C++实现)
用C++实现整数的加减法:Tips:这里必须用 '0' ,否则会导致输出一个未知图案或不输出 string ret(num1.size() + 1, '0');减法的最后对高位判0是必不可少的 while (ret[0] == '0') { ret.erase(ret.begin()); }代码如下:#include <iostream>#include <string>usin原创 2020-11-12 18:03:23 · 5504 阅读 · 7 评论 -
实现string类的接口,并完成测试,要求利用深拷贝和深赋值实现
实现string类的接口,并完成测试,要求利用深拷贝和深赋值实现#include <iostream>#include <string>using namespace std;class String{public: String(const char* str = "") { if (str == nullptr)//空指针视为空串 { str = ""; } _str = new char[strlen(str) + 1]; st原创 2020-11-12 00:26:09 · 791 阅读 · 3 评论 -
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写(力扣)
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。#include <iostream>#include <string>using namespace std;//给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。class Solution {public: bool isPalindrome(string s) { s = toLowerCase(s); //全原创 2020-11-12 00:24:23 · 1090 阅读 · 2 评论 -
C++模板(函数模板、类模板)
C++模板: C++提供一种模板的机制来减少代码重复。比如:对于同一样函数使用不同的数据类型,int,double,char等。C++模板属于“元编程”的范畴。C++ 模板函数://模板函数template<typename T>void swap(T& t1, T& t2){ T temp = t1; t1 = t2; t2 = temp;}template<typename T>T add(const T& t1, const原创 2020-11-11 14:28:53 · 314 阅读 · 3 评论 -
C++友元函数和友元类
在C++中,我们使用类对数据进行了隐藏和封装,类的成员变量一般都定义为私有或受保护,而成员函数一般都定义为公有的,并以此提供类与外界的接口。但是,有时需要定义一些函数,这些函数并不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用:提高了程序的运行效率,减少了类型检查和安全性检查等都需要时间开销,但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元函数 : 友元函数是可以直接访问类的私有成原创 2020-10-22 23:55:49 · 557 阅读 · 2 评论 -
C与C++中static的区别及相同点
一:static变量的常见应用1:静态局部变量和普通局部变量的区别:它们的主要区别是作用域不同,静态局部变量的是包含它当前的源文件,该工程的其他源文件是不可以访问它的。这样做的好处是多人联合开发时,不必担心变量名冲突问题。而普通局部变量的的作用域是当前的整个工程,整个工程里的不同文件可以共享全局变量。两者都存放在全局数据区,如果没有初始化,系统将其自动初始化为0。2:静态局部变量和普通局部变量的区别:(1):存储位置不同:静态局部变量被static修饰,其生命周期是全局的,在整个源文件执行完毕后原创 2020-10-22 21:33:53 · 403 阅读 · 3 评论 -
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。这题,乍一看,什么傻逼题目,怎么会有这种玩意???不过,仔细一想,人家能出这种题的肯定是有解决方法的,所以这题还是挺有作头的,奥利给,干就完了下面附上解决方法和代码:想法呢,其实也不难理解,就是由于题目限制了循环那些关键字,但是题目又很明显需要用到递归来操作,所以我们需要找到其他的递归方法这个抛弃了循环及if判断等关键字的递归方法就是我们今天的主角“ &原创 2020-10-19 22:54:38 · 380 阅读 · 7 评论 -
C++内联函数
c++内联函数C++中支持内联函数,其目的是为了提高函数的执行效率,用关键字 inline 放在函数定义(注意是定义而非声明,下文继续讲到)的前面即可将函数指定为内联函数,内联函数通常就是将它在程序中的每个调用点上“内联地”展开无论是《Effective C++》中的 “Prefer consts,enums,and inlines to #defines” 条款,还是《高质量程序设计指南——C++/C语言》中的“用函数内联取代宏”,宏在C++中基本是被废了在学习c++内联函数的过程中, 编写了如原创 2020-10-08 22:44:50 · 225 阅读 · 1 评论 -
this指针的妙用
每个对象都可以通过this指针访问自己的地址对象的this指针不是对象自身的一部分,也就是说,this指针占用的内存大小不会反映在对对象进行sizeof运算符得到的结果中this指针作为一个隐式的参数传递给对象的每个非static成员函数对象隐式地使用this指针或者显式地使用this指针,来引用它们的数据成员和成员函数this指针使串联的函数调用成为可能,即在同一条语句里多个函数被调用this指针总是作为类的成员函数的第一个入参(隐式)this指针的类型取决于对象的..原创 2020-10-03 15:50:25 · 326 阅读 · 1 评论 -
类和对象(C++)
一、什么是类class为定义类的关键字,其后跟类名,{ }中为类的主体,类的定义结尾有分号类中的元素称为类的成员类中的数据称为类的属性或者成员变量类中的函数称为类的方法或者成员函数。二、定义具有成员函数的类类的定义包含数据成员和成员函数,他们分别定义类的属性和行为类的定义开始于后面跟着类名的关键字class按照惯例,用户自定义类的名字以大写字母开头,并且出于可读性的目的,类名中每个后继单词以大写字母开头每个类封闭在一对花括号({和})中,并以分号结尾出现在成员访问原创 2020-10-03 15:45:14 · 324 阅读 · 1 评论 -
C++入门、输入/输出和运算符
1 C++入门● 单行注释以双斜杠符号 // 开始。程序员加入注释为程序做注解,以提高它们的可读性● 程序运行时,注释不会使计算机执行任何操作,它们被 C++ 编译器所忽略,不会产生任何机器语言目标代码● 预处理器指令以 # 开头,是一条发给 C++ 预处理器的消息。预处理指令在程序被编译之前由预处理器处理● #include 通知 C++ 预处理器,在程序中包含 输入/输出 流头文件的内容。该文件包含了编译使用 std::cin std::cout原创 2020-05-25 00:41:39 · 2109 阅读 · 0 评论