C++
文章平均质量分 80
Mr_WangAndy
一个追求自由的Cpper!
展开
-
深入理解计算机系统_程序加载后,进程的内存布局
进程的应用空间和内核空间的结构原创 2023-01-14 13:29:57 · 236 阅读 · 0 评论 -
深入理解计算机系统_程序的加载过程和运行过程
可执行目标文件的加载和运行的过程原创 2023-01-14 12:55:11 · 1888 阅读 · 0 评论 -
深入理解计算机系统_可执行目标文件和可重定位目标文件的3个区别
可执行目标文件和可重定位目标文件的区别原创 2023-01-14 11:58:13 · 1469 阅读 · 0 评论 -
深入理解计算机系统_程序的链接过程
记录了程序从可重定位目标文件到可执行目标文件的链接过程。原创 2023-01-02 15:56:32 · 805 阅读 · 0 评论 -
深入理解计算机系统_可重定位目标文件的格式---elf格式
这篇笔记写了符号表的相关信息。原创 2022-12-31 18:14:50 · 774 阅读 · 0 评论 -
深入理解计算机系统_静态链接和动态链接以及静态库和动态库
静态库和动态库静态链接和动态链接原创 2022-12-31 10:57:42 · 956 阅读 · 0 评论 -
C/C++_IO缓存问题
这篇文件记录了关于IO缓冲的问题:数据在缓存中的执行过程,库缓存的三种方式,以及经常犯错的scanf方式。原创 2022-12-03 18:28:16 · 1170 阅读 · 0 评论 -
【C++ Primer Plus(第六版)】第十三章 类继承
总结了书上十三章的内容,这章非常基础非常重要,都是以前没搞明白的知识点。原创 2022-06-05 10:13:34 · 189 阅读 · 1 评论 -
【C++ Primer Plus(第六版)】第十二章 类的动态内存分配
第十二章 类的动态内存分配总结一下,这一章讲的这件事:会使用new和delete对空间的分配。day33实现了string类例子,来完成对整个章节的总结。12.1 动态内存和类在类中不能确定字符串长度时,比如姓名,要定义一个指针,然后通过动态内存方式分配内存。在统计类中new的数量时,应该使用一个static静态变量,这样无论创建了多少次对象,程序只创建一个静态类变量。书中举了一个stringbad类的例子,说明了这些问题。C++类自动提供了如下几种特殊成员函数:默认构造函数默认析构函数复原创 2022-05-21 17:35:19 · 315 阅读 · 0 评论 -
【C++ Primer Plus(第六版)】第十一章-使用类
使用类11.1 运算符重载引出:运算符重载使得语言更加灵活,生活中也是这样,比如英语中不同的物体使用不同的动词,这样英语就会变得非常笨拙。C++中基本数据类型可以做加法,但是如果对+运算符重载后,就可以实现了两个对象加法运算。11.2 计算时间:一个运算符重载的例子书上给出了重载时间类的例子,见Day30中的例子。重载运算符限制:不能重载以下运算符:sizeof运算符. 成员运算符.*成员指针运算符::作用域运算符?:条件运算符强制类型转换运算符:const_cast ,dyna原创 2022-05-08 20:15:35 · 285 阅读 · 0 评论 -
【C++ Primer Plus(第六版)】第十章-对象和类
第十章 对象和类10.1 过程性编程和面向对象编程面向过程首先考虑要遵循的步骤;然后考虑如何表示这些数据。面向对象首先从用户角度考虑对象,描述对象的所需的数据以及描述用户与数据交互所需的操作。10.2 抽象和类C语言中有基本数据(int float char 指针)类型完成如下工作:决定数据对象需要的内存数量;决定内存中的位(不同类型占用不同的内存位数);决定可使用数据对象执行的操作或方法。类和结构:C++对结构进行了扩展,结构和类的唯一区别是:结构默认访问是public,而类是pri原创 2022-05-02 21:39:35 · 1025 阅读 · 0 评论 -
【C++ Primer Plus(第六版)】第九章-内存模型与名称空间
名称空间存储持续性,作用域和链接性编译原创 2022-04-10 16:06:49 · 855 阅读 · 0 评论 -
【C++ Primer Plus(第六版)】第八章-函数探幽总结
【C++ Primer Plus(第六版)】第八章-函数探幽总结原创 2022-04-04 22:15:35 · 971 阅读 · 0 评论 -
C++结果保留指定位数的实现
参考了https://www.cnblogs.com/weedboy/p/6831678.html博客。我现在遇到的问题是:想用C++实现输出结果保留指定的位数,在C语言上能很容易实现如:printf("%2f")。但是C++突然一片空白了,通过查博客,实现方式如下:需要加头文件#include setprecision()来用来保存有效数字,fixed和setprecision()一起用...原创 2019-01-19 08:55:46 · 2973 阅读 · 0 评论 -
c++_-nan(ind) NAN
昨天遇到的这个问题,让我们很头疼,今天解决了nan:not a number的缩写.计算结果不是一个数。ind是indeterminate的缩写,即无法确定是什么出错原因:遇到分母是零,或者负数开平方,取对数。程序如果出现这个错误,执行速度会非常慢的。...原创 2019-12-22 11:02:18 · 5145 阅读 · 0 评论 -
C++_写游戏—打飞机、飞机大战
看到某位大牛的游戏博客,感觉装逼真的太好使了,哈哈#include<iostream>#include<windows.h>#include<conio.h>#include<time.h>#include<string>using namespace std;/*=============== all the struc...转载 2019-11-25 19:26:44 · 533 阅读 · 2 评论 -
C++_ofstream的使用方法
ofstream的使用方法ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,co...转载 2019-11-25 10:19:16 · 9391 阅读 · 0 评论 -
C++_函数内部定义变量的内存管理
****在C++中,内存管理是一件十分让人畏惧的事,要考虑的方面和情况很多,我认为关键的一点是要知道你的这个内存是属于什么分区中。在C++中程序在运行过程中分为:栈,堆,常量数据区,自由存储区,全局/静态存储区,这些区的管理还是有些区别的。栈中分配的变量主要是:参数,函数内定义的局部变量,由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。****堆:主要是用new操作符来定义...原创 2019-03-19 16:28:47 · 1049 阅读 · 0 评论 -
C++_STL_查找算法
算法概述算法部分主要由头文件,和组成。是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较、交换、查找、遍历操作、复制、修改、反转、排序、合并等等。体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作。中则定义了一些模板类,用以声明函数对象。STL提供了大量实现算法的模版函数,只要我们熟悉了STL之后,许多代码可以被大大的化简,只...原创 2019-07-09 15:21:43 · 381 阅读 · 0 评论 -
C++_STL_排序算法
merge()把两个数组排序成一个数组,并且合并后的数组,是按顺序排序的。void main_merge(){ vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); vector<int> v2; v2.push_back(2); v2.push_back(4); v2.p...原创 2019-07-09 19:01:10 · 300 阅读 · 0 评论 -
C++_STL_常用的拷贝和替换算法
copy()把A数组拷贝到另一个B数组中。void main_copy(){ vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); vecIntA.push_back(5); vecIntA.push_back(7); vecIntA.push_back(9); vector<int&...原创 2019-07-10 13:58:46 · 366 阅读 · 0 评论 -
C++_常用的算数和生成函数
accumulate()accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。// 对指定范围内的数求和。void main_accumulate(){ vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(4); v1.push_back(3); v1.p...原创 2019-07-10 14:01:11 · 364 阅读 · 0 评论 -
C++_STL_集合算法:交集,并集和差集
这几个函数我编译的时候没有输出来set_union(),set_intersection(),set_difference()set_union(),set_intersection(),set_difference()set_union: 构造一个有序序列,包含两个有序序列的并集。set_intersection: 构造一个有序序列,包含两个有序序列的交集。set_diffe...原创 2019-07-10 14:02:47 · 793 阅读 · 0 评论 -
C++_size_t和size_type区别
为了使自己的程序有很好的移植性,C++程序员应该尽量使用size_t和size_type,而不是int,unsigned。在标准C/C++的语法中,只有int float char bool等基本的数据类型,至于size_t,或size_type都是以后的编程人员为了方便记忆所定义的一些便于理解的由基本数据类型的变体类型。size_t是为了方便系统之间的移植而定义的,它是一个无符号整型,在32...转载 2019-09-05 10:46:27 · 291 阅读 · 2 评论 -
C++_vector resize()方法
vector的resize方法:void resize(size_type _Newsize, const value_type& _Val)它并不会改变之前的数组,第一个参数会改变这个数组的长度,第二个参数并不会改变数组之前的值,只会为数组的新增的长度赋值。实验代码如下:#include <iostream>#include <vector>using ...原创 2019-09-10 14:52:13 · 2017 阅读 · 0 评论 -
C++_拷贝构造函数练习_已知两点的坐标,求两点的距离
在做数学建模,需要求出图像上两个像素点的距离,代码如下:#include<iostream> #include<cmath> #include<stdio.h>using namespace std;class Point {private: double x, y;public: Point(double x, double y) {...原创 2019-09-19 18:43:36 · 3805 阅读 · 0 评论 -
C++_string遍历,连接,替换查找
string初始化,有三种方法:s1[i],迭代器,s1.at(i)抛出异常分别如下:void main2(){ string s1 = "abcdefg"; for (int i = 0; i < s1.length(); i++) { cout << s1[i] << " "; } for (string::iterator it = s1.be...原创 2019-06-24 18:44:19 · 1030 阅读 · 0 评论 -
C++_STL_Set和multiset容器
set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。multiset与set的区别:set支持唯一键值,每个元素值只能出现一次;而multi...原创 2019-07-08 15:53:03 · 644 阅读 · 0 评论 -
C++_友元函数和友元类、运算符重载
在C++中,我们使用类对数据进行了隐藏和封装,类的数据成员一般都定义为私有成员,成员函数一般都定义为公有的,以此提供类与外界的通讯接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类...原创 2019-03-22 14:48:38 · 762 阅读 · 0 评论 -
C++_继承
private,public,protectedprotected:在类的内部使用和在继承的子类中使用。public继承:父类成员在子类中保持原有访问级别#include using namespace std;class Test {public: //int a;protected:int b;private:int c;public:void print1(){...原创 2019-03-25 12:10:11 · 120 阅读 · 0 评论 -
自由练习_删除字符串的重复字符
一、 删除字符串的重复字符 输入:addgffa 输出:adgf思路:从字符串的第一个元素开始一次往后对比,如果有重复的元素,就把这个位置往后的数组,一次往前移动一个。代码如下:#include <iostream>using namespace std;int main(){ char a[20]; cout << "请输入字符串" << e...原创 2019-03-17 11:03:49 · 255 阅读 · 0 评论 -
C++_const修饰的是谁?
问题一:const修饰的是谁?实验代码如下:class Test{public: Test(int a, int b) { this->a = a; this->b = b; } void Var(int a,int b) const //const修饰的this指针。,Var(const Test *this,int a,int b ) { thi...原创 2019-03-08 10:27:20 · 129 阅读 · 0 评论 -
C++_静态成员变量和静态成员函数
静态成员变量和静态成员函数static关键字的由来有没有一个属性是属于所有的对象的。代码如下:class Test{public: int getC() { return a; }private: int c; static int a;};//给类中的静态成员赋值int Test::a = 10;int main(){ Test t1; cout &l...原创 2019-03-07 17:26:18 · 169 阅读 · 0 评论 -
C++_内联函数,默认参数,函数占位参数,函数重载,函数重载和函数指针结合,struct和class关键字区别,类的定义和类的实现分开写,面向过程向面向对象的转变
内联函数内敛函数的说明(这个我没弄懂)说明1:必须inline int myfunc(int a, int b)和函数体的实现,写在一块说明2C++编译器可以将一个函数进行内联编译被C++编译器内联编译的函数叫做内联函数内联函数在最终生成的代码中是没有定义的C++编译器直接将函数体插入在函数调用的地方内联函数没有普通函数调用时的额外开销(压栈,跳转,返回)说明3:C...原创 2019-03-03 10:20:13 · 140 阅读 · 0 评论 -
C++-构造函数,析构函数,初始化列表,执行顺序
构造函数有关构造函数1构造函数定义及调用1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数;2)构造函数在定义时可以有参数;3)没有任何返回类型的声明。2构造函数的调用自动调用:一般情况下C++编译器会自动调用构造函数手动调用:在一些情况下则需要手工调用构造函数代码:class Test{public: Test() { cout...原创 2019-03-05 21:13:43 · 768 阅读 · 0 评论 -
C++_三目运算符,const使用, C++引用
三目运算符C语言返回变量的值 C++语言是返回变量本身。代码:int a = 10;int b = 20;(a &amp;amp;lt; b ? a : b) = 30;cout &amp;amp;lt;&amp;amp;lt; a &amp;amp;lt;&amp;amp;lt; endl;// 输出的结果是a=30;(a &amp;amp;lt; b ? a : b) 返回的是一个原创 2019-03-02 15:09:45 · 346 阅读 · 0 评论 -
C++_面向对象编程
例子二:设计一个圆形类(AdvCircle),和一个点类(Point),计算点在圆内部还是圆外 即:求点和圆的关系(圆内和圆外)上一篇文章中最后一个例子,是用面向对象的方法求解,长方体的体积和判断两个正方体是否相等。判断两个正方体是否相等用了三种方法求解,最后一种方法是用的,纯面向对象的思想。为了再次熟悉加深对面向对象方法的理解,这次实现这个例子。补一下初中的数学:这个问题的求解转换为,判...原创 2019-03-05 10:58:42 · 2862 阅读 · 0 评论 -
C++面向对象入门
用面向对象的方法求圆的面积。//struct Circle//{// double m_s;// double m_r;//};//class Mycircle//{//public:// double m_s; //圆面积。// double m_r;//public:// void setR(double r) // 设置参数。// {// m_r = r;/...原创 2019-03-01 10:59:08 · 525 阅读 · 0 评论 -
day06---继承中的析构和构造
类型兼容性原则类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员。这样,公有派生类实际就具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解决。类型兼容规则中所指的替代包括以下情况:子类对象可以当作父类对象使用子类对象可以直接赋值给父类对象子类对象可以直接初始化父类对象父类指针可以直接指...原创 2019-04-02 11:04:20 · 146 阅读 · 0 评论 -
C++_多态
多态:同样的一句话,可表示不同的意思。面向对象三大特征:封装突破了C语言函数的概念。。继承代码复用 。。。。我复用原来写好的代码。。。多态多态可以使用未来。。。。。80年代写了一个框架。。。。。。90人写的代码多态的条件:1 要有继承。2 要有函数的重写。(父和子都有同一个函数)3 用父类指针指向子类对象。下面是一个多态的例子:例子中,父类是一个战机,子类是升级过后的战...原创 2019-04-09 08:19:23 · 239 阅读 · 0 评论