
C++
文章平均质量分 88
C++学习
JacksonKim
这个作者很懒,什么都没留下…
展开
-
Java容器介绍及其操作方法
Collection的方法:boolean add(Object) 确保容器持有此参数。如果没有将此参数添加进容器则返回 false。(这是个“可选”的方法,稍后会解释。) boolean addAll(Collection) 添加参数中的所有元素。只要添加了任意元素就返回 true。(“可选”) void clear( ) 移除容器中的所有元素。(...原创 2023-06-28 23:49:53 · 542 阅读 · 0 评论 -
重载==overload,重写==覆盖==override
一、重载(overload):定义:同一个类中的函数具有相同名称,但参数列表不同(参数个数,参数类型),这样同名不同参数的函数之间,互为重载函数,属于编译时多态。特点:①同一个类中(相同作用域)②函数名称必须相同③函数参数必须不同④函数返回类型可同可不同,不重要二、重写(override)也称为覆盖,是指子类重新定义父类中有相同函数名,参数列表,返回类型的虚函数。子类对象使用这个方法时,将调用子类中的定义,父类中的定义如同被“屏蔽”了,属于运行时多态。特点:①函数名、参数列表、返回类型翻译 2022-05-15 19:59:07 · 487 阅读 · 0 评论 -
C/C++:从底层解释指针和引用的区别
一、前言引用是C++引入的重要机制(C语言没有引用),它使原来在C中必须用指针来实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢?二、引用的实现方式引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未解释引用的实现方式。常见错误说法是“引用”自身不是一个变量,甚至编译器可以不以引用分配空间。实际上,引用本身是一个变量,只不过这个变量的定义和使用与普通变量有显著的不同。为了解引用变量底层实现机制,考查如下代码转载 2020-09-16 21:39:00 · 904 阅读 · 0 评论 -
C/C++: 指针的++和--操作以及更普遍的加法减法操作
一般数据类型指针char ch[16]; char *p = ch; p++;//p++后,p指向ch[1]; int num[8]; int *p = num;p++; //p++后,p指向num[1];指向多维数组的指针 char ch[3][16]; char (*p)[16] =ch; p++; //p++后,p指向ch[1][0];总结: ++, --的跳转的单位是其指向的数据类型,如果指针指向一般数据类型,则++跳转到下一地址;如果指针指向多维数组的一行,+...转载 2020-09-16 16:25:21 · 452 阅读 · 0 评论 -
C/C++:文件操作总结,如何读二进制文件
c原创 2020-09-10 23:44:01 · 2878 阅读 · 0 评论 -
C++:vector删除和增加元素,vector操作简洁清晰
一、简介 Vector就是线性数组的一种抽象和泛化,它也是由具有线性次序的一组元素构成的集合。二、vector类的成员函数1. 增加(1)从最后添加vector<char> alphabet;alphabet.push_back('A');// 或者 alphabet.emplace_back('A');(2)从某个位置插入alphabet.insert(alphabet.begin(),'B');//或者alphabet.emplace(alph..原创 2020-08-05 20:46:32 · 9276 阅读 · 0 评论 -
C++:指针和引用的区别
转自:https://www.zhihu.com/question/37608201/answer/545635054引用是C++引入的重要机制(C语言没有引用),它使原来在C中必须用指针来实现的功能有了另一种实现的选择,在书写形式上更为简洁。那么引用的本质是什么,它与指针又有什么关系呢?1.引用的底层实现方式引用被称为变量的别名,它不能脱离被引用对象独立存在,这是在高级语言层面的概念和理解,并未解释引用的实现方式。常见错误说法是“引用”自身不是一个变量,甚至编译器可以不以引用分配空间。.转载 2020-07-02 23:13:03 · 1659 阅读 · 1 评论 -
C++:处理数据——原始内置类型和C++11初始化方式
一、原始内置类型(Primitive Built-in Types)char 1个字节 int 2个或4个字节(不同环境有差别,一般是4个字节) float 4个字节,float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位) double 8个字节,double的表达式为1bit(符号位)+ 11bits(指数位)+ 52...原创 2020-05-07 23:49:07 · 386 阅读 · 0 评论 -
C++: 内存模型——搞清楚全局变量、静态变量、const常量
一、前言 相对于从名称定义全局变量、静态变量、const常量去了解他们,我们不如从本质上去区分他们。也就是从另一个角度看待这些变量或常量的区别。 对于C++中的变量而言,它有三种特性,存储持续性、作用域、以及链接性。 其中存储连续性描述的是变量的生命周期,作用域和连接性描述的是变量的可见和可使用的范围,作用域一般针对于文件内部而言,链接性则是针对于文件与文件之间而言。...原创 2020-05-06 14:35:02 · 730 阅读 · 0 评论 -
C++:重复编译与重复定义
一、为什么要避免重复包含? 1.在编译c或c++程序时候,编译器首先要对程序进行预处理,预处理其中一项工作便是将你源程序中#include的头文件完整的展开,如果你在(同一个.cpp下)有意或无意的多次包含相同的头文件,会导致编译器在后面的编译步骤多次编译该头文件,工程代码量小还好,工程量一大会使整个项目编译速度变的缓慢,后期的维护修改变得困难。2.第一点讲的头文件重...转载 2020-05-06 11:31:42 · 3378 阅读 · 0 评论 -
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
一、前言 C/C++的编译过程包含了四个步骤: 1. 预处理(Preprocessing) 2. 编译(Compilation) 3. 汇编(Assemble) 4..链接(Linking)二、预处理 预处理阶段主要处理一些预处理指令,比如文件包括、宏定义、条件编译。1.文件包括 文件包括就是将所有的#include...原创 2020-05-06 01:16:31 · 18057 阅读 · 4 评论 -
C++动态创建数组,Java动态创建数组,两者语法上的区别
有时候我们需要根据输入值动态地创建数组,C++和java中语法大致相似,略有些不同,在此记录一下。一、C++动态创建数组有直接声明和new关键字创建两种。int m, n;cin >> m >> n;//1.直接声明int a1[m];int a2[m][n];//2.用new关键字创建,其中二维数组不能直接new int[m][n]//2....原创 2020-04-25 00:33:49 · 389 阅读 · 0 评论 -
C++构造函数和默认构造函数的区别与联系
之前接触vector时发现vector的声明有好几种方式vector<int> a;vector<int> b();vector<int> c(10);vector<int>* d = new vector<int>();vector<int>* e = new vector<int>(10);看...转载 2020-04-25 00:20:09 · 2734 阅读 · 0 评论 -
C++编译错误:fatal error: variable-sized object may not be initialized
一、出错代码int count[n+1]={0};二、原因及解决办法 正如错误提示:可变大小的对象无法初始化,也就是在声明可变大小的对象时,不能同时进行初始化。这里n是可变大小的,在较新的编译器中用变量(如n)定义数组是被允许的,但是不能同时进行初始化,如有需要可在后续的步骤中进行初始化。 下面这样是不会出错的。int count[n];...原创 2020-04-19 12:04:03 · 3342 阅读 · 1 评论 -
C++ map、unordered_map操作方法简洁清晰
一、map简介 键值对:键key 与 值value组成的对。 二叉树/红黑树 : map的底层是由红黑树实现的,相当于Java中的TreeMap。二 、map的增删查改// 初始化mapmap<string, int> people = { make_pair("jackson", 21), make_pair("amy",20) };map<s...原创 2020-04-09 00:10:07 · 673 阅读 · 0 评论 -
C/C++字符数组和字符串的区别和联系,字符串拼接,比较,分割,复制
在C++中,字符串和字符数组通常会有以下三种表示char a0[] = {'a','b','c','d','e','f'};char a[]="abcdef";char *b = "abcdef";string c = a;string d = b; //string类可接受char * 和char[]的直接赋值 //但是反过来就不可以...原创 2020-04-01 23:53:32 · 3937 阅读 · 0 评论 -
C/C++内存分区
对于C/C++内存分区有一些不同的说法,今天我整理一下这些说法的区别和联系,实质上大体是一样的,可能由于编译器不同会有一些区别。一、这是一张比较详细的关于分段的情况1. 代码段(.txt) .txt段存放代码(如函数)与部分常量(包括字符串和整数),.txt段的数据可以被执行2. 数据段(.data) .data用于存放初始化过的全局变量和静态变量(包括静态全局变量和静态...转载 2020-03-30 00:22:21 · 365 阅读 · 0 评论 -
C++和C输入输出和格式化输出
我们都知道C++是C的增强版,目前一般的C++编译器都可以处理C代码和C++代码,所以在cpp文件中一样可以使用c语句,接下来我们来分析一下C和C++特有的输入输出语句的不同。一、...原创 2020-03-28 18:04:12 · 1240 阅读 · 0 评论