C++
文章平均质量分 58
浩海烟云
软件开发选手
展开
-
程序员的自我修养阅读笔记
程序员的自我修养一、. 代码编写的分区代码段可执行代码、字符串常量数据段已初始化全局变量、静态变量、常量数据BSS段未初始化全局变量、静态变量栈局部变量、函数参数堆动态分配内存五个数据段 进程(执行的程序)会占用一定数量的内存,它或是用来存放磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过,进程对这些内存的管理方式因内存的用途不一而不尽相同:**有些内存是事先静态分配和统一回收的;有些却是按照需要动态分配和回收的。**对于任何一个普通的原创 2021-08-10 17:59:49 · 327 阅读 · 0 评论 -
vscode中实现C++代码编译
VScode中实现C++代码的编译最近公司使用的vscode进行代码的编辑,所以在自己的电脑上也下载了一下这个软件,在配置的过程中遇到了不少的问题,因此,准备写一下这个博客,记录一下,希望帮助遇到相同问题的朋友,共同交流。首先需要在vsode官网去下载软件,并进行安装就行了,这个操作起来还是比较容易的。其次,想要编译C++的代码,还需要下载一个叫做MinGW的编译器,MinGW(Minimalist GNU for Windows), 是一个适用于微软windows应用程序的极简开发环境。MinGW提原创 2020-08-23 22:34:12 · 5730 阅读 · 2 评论 -
C++之匈牙利命名法
C++之匈牙利命名法匈牙利命名法(Hungarian notation)是电脑程序设计中的一种变量命名规则,此命名法又可细分为: 系统匈牙利命名法 匈牙利应用命名法 匈牙利命名法具备语言独立的特性,并且首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题。 在匈牙利命名法中,一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用途,紧跟着的就是程原创 2020-08-10 10:34:49 · 659 阅读 · 0 评论 -
C++必须掌握的15道技术面试题
C++必须掌握的20道技术面试题(1) 请用简单的语言描述一下C++是什么?C与C++的区别是什么?答:C++是在C语言的基础上开发的一种面向对象的编程语言,应用广泛,支持多种编程范式,面向对象编程,泛型编程和过程化编程,支持封装,继承,多态等重要特性。C语言是一个结构化的语言,面向的是过程,重在考虑如何通过一个过程,对输入进行运算处理得到输出(或实现过程控制),而对于C++,首先考虑的是如何...原创 2019-08-07 21:05:06 · 844 阅读 · 0 评论 -
STL(五)---vector
简介在头文件 中定义namespace std { template <typename T, typename Allocator = allocator<T> >class vector;}vector 是一种序列容器,是对大小可变数组的封装。数组中的元素是连续存储的,所以除了能够通过迭代器访问外,还可以通过常规的指针偏...原创 2019-08-09 10:49:13 · 178 阅读 · 0 评论 -
STL(四)---array
简介array在头文件 中定义namespace std{ template<class T, size_t N> class array;}array是固定元素个数的容器,与相应C数组的语义相同,容器array< T,N> 的大小等于相应C数组T[N]的大小,且性能也与C数组相同。但是它提供了C++标准容器的相应特性,如可以查询容器大小,支持...原创 2019-08-09 10:29:41 · 124 阅读 · 0 评论 -
操作系统之进程线程总结
操作系统之进程线程总结1.什么是进程?什么是线程?进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 在Mac、Windows NT等采用...转载 2019-08-13 20:19:31 · 171 阅读 · 0 评论 -
C++之memcpy的用法
memcpy的用法memcpy是 c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。1、函数原型 void *memcpy(void *dest, const void *src, size_t n);2、功能从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址...原创 2019-08-13 19:36:27 · 18649 阅读 · 1 评论 -
3.C++之面向对象
面向对象面向对象程序设计(Object-oriented programming,OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。封装把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。关键字:public, protected, private。不写默认为 private。public 成员:可以被任意实体访...原创 2019-08-02 10:28:49 · 123 阅读 · 0 评论 -
C++之线程传参祥解,detach()大坑,成员函数做线程函数
线程传参祥解,detach()大坑,成员函数做线程函数(1) 传递临时对象作为线程参数 1.1 要避免的陷阱(解释1) 1.2 要避免的陷阱(解释2) 1.3 总结(2) 临时对象作为线程参数 2.1 线程id概念 2.2 临时对象构造时机抓捕(3) 传递类对象、智能指针作为线程参数(4...原创 2019-08-01 21:27:08 · 246 阅读 · 0 评论 -
STL(三)---迭代器
STL(三)—迭代器头文件所有的容器都定义了自己的迭代器类型,所以一般情况下,不需要再自己添加迭代器头文件。但是如果要使用一些特殊的迭代器,如反向迭代器,或者一些迭代器辅助函数,那么就需要添加头文iiterator。迭代器类型类型能力提供者输入迭代器一次向前读取istream输出迭代器向前写入ostream,inserter前向迭代器向前读取和...原创 2019-08-03 18:32:59 · 137 阅读 · 0 评论 -
4.C++之构造函数
C++之构造函数C++提供了构造函数来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,构造函数不需要用户来调用它,而是建立对象时自动执行。构造函数的一些特点:1.构造函数名和类名相同;2.构造函数无返回值不是void而是前边啥都不用写;3.构造函数可以重载;4.构造函数可以在类内定义也可在类外定义;5.当新的对象被建立时,该对象所属的类的构造函数自动被调用,在...原创 2019-04-08 14:21:48 · 237 阅读 · 0 评论 -
Linux常用命令精简版
一.常见的Linux命令1.echo命令:用于在终端上输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”;2.data命令:显示及设置系统的时间和日期,格式为“data [选项] [+指定的格式]”;3.reboot命令:重启系统,格式是reboot;4.poweroff命令:关闭系统,格式是poweroff;5.wget命令:在终端中下载网络文件,格式是“wget...原创 2019-04-19 16:54:37 · 211 阅读 · 0 评论 -
7.C++之继承
C++之继承继承的概述 (1)一个类A可以继承另一个类B,那么我们称类B为基类(父类),类A为派生类(子类)。 (2)子类从父类继承了所有成员,除了构造函数、析构函数、赋值运算符重载函数。 (3)子类继承父类后,子类的成员分为两部分:1.继承自父类的部分(base part);2.子类自己 扩展的成员(appendent part)。 (4)虽然父类的私有成员被子类继承,但子类依然...原创 2019-05-13 21:35:01 · 137 阅读 · 0 评论 -
6.C++之虚函数,多态
C++之虚函数,多态虚函数的使用: 当父类指针或引用指向子类对象,而子类中又覆盖了父类的函数,希望用父类指针或父类引用,调用到正确版本的函数(父类指针或引用实际所指向的对象版本的函数),需要把该成员函数声明为虚函数。(1) 有了虚函数之后,无需向下转型,就可以正确的用父类的指针或引用,调用到子类的函数;(2)虚函数目的:期望父类指针(或引用),不管指向父类还是子类,在调用overrid...原创 2019-05-14 20:29:43 · 401 阅读 · 0 评论 -
1.C++学习笔记
C++学习笔记之类和对象1.C语言和C++语言的区别:C语言是面向过程的语言,C++是面向对象的语言。2.C++(面向对象)的三大核心概念:封装、继承、多态 + C++标准新特性(命名空间namespace、 string)、STL(vector、list、map)。 3.C语言的结构体和C++的类的区别:C语言结构体成员的默认访问权限为共有,而C++的成员的默认 权限为私有。 4...原创 2019-05-10 16:03:40 · 381 阅读 · 4 评论 -
5.C++之简单的类实现
C++之简单的类编写函数功能实现:查询日期,一年中第几天。#include<iostream>using namespace std;class Date{public: //成员函数一般共有,作用:操作成员变量 void steYear(int y); void setMonth(int m); void setDay(int d); void setDa...原创 2019-05-10 16:06:52 · 420 阅读 · 0 评论 -
C++之并发与多线程基本概念
C++之并发与多线程一.并发的基本概念及实现,进程、线程的基本概念(1) 并发:两个或更多地任务(独立活动)同时发生(进行):一个程序同时执行多个独立的任务;注:以往计算机,单核cpu(中央处理器):某个时刻只能执行一个任务:由操作系统调度,每秒钟进行多次所谓的“任务切换”,这是并发的假象(不是真正的并发),这种切换(上下文切换)是要有时间开销的,比如操作系统要保存你切换时的各种状态,执行进...原创 2019-05-21 20:06:46 · 239 阅读 · 0 评论 -
8.C++之头文件,.cpp文件之间的搭配使用
C++之头文件,.cpp文件之间的搭配使用(1) 头文件及.h文件,定义一个类,并对其中的成员函数进行一个声明,只声明不实现,文件名与类 名相同。/***************************************Point.h***************************************************/#ifndef Point_h#define...原创 2019-05-12 20:37:07 · 3419 阅读 · 0 评论 -
2.C++之程序编译过程详解
C/C++程序编译过程详解C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成...转载 2019-05-17 12:40:30 · 164 阅读 · 0 评论 -
9.C++之容器,迭代器
C++之容器,迭代器一.容器容器是一种数据结构,用于存储相同类型的数据项的集合;STL容器使用类模板实现。每个类都有特定的成员函数,用于处理这个类中的对象。1.顺序容器 (1) 向量Vector:随机访问任何一个元素,尾部增删元素; (2) 双端队列Deque:随机访问,在头部和尾部增删元素; (3) 链表List:顺序访问,任意位置增删元素。 Vector容器,在头...原创 2019-06-10 10:47:49 · 354 阅读 · 0 评论 -
2.C++之基础知识点总结
C++之基础知识点总结1.C++和C的区别设计思想上:C++是面向对象的语言,而C是面向过程的结构化编程语言;语法上:C++具有重载、继承和多态三种特性;C++相比C,增加多许多类型安全的功能,比如强制类型转换;C++支持范式编程,比如模板类、函数模板等。2. C/C++ 中指针和引用的区别(1).指针有自己的一块空间,而引用只是一个别名;(2).使用sizeof看一个指针的大...原创 2019-06-17 09:56:22 · 161 阅读 · 0 评论 -
10.C++之链表
C++之链表一、链表简介链表是一种物理存储单元上下不连续的存储结构,数据元素之间是通过链表中的指针进行链接。链表是由一系列的节点(链表中每一个元素称为节点)组成,节点可以在运行时动态生成。每一个节点都包含两个部分:一个是存储数据的数据域,另一个是存储下一个节点地址的指针域。一般链表在一些需要快速插入/删除,而不太关心或者不需要随机访问的情况下使用。链表相对于数组:链表允许在任意位置插入或...原创 2019-06-24 15:32:25 · 152 阅读 · 0 评论 -
C++排序算法
C++之排序算法冒泡排序 冒泡排序(Bubble sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行指导没有再进行交换,也就是说数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法原理: (1) 比较相邻的元素。如果第一个比第二个大,就交换他们两个; ...原创 2019-08-01 22:22:50 · 545 阅读 · 0 评论 -
STL(一)---概述
STL(Standard Template Library)里有很多组成部分,但是主要有三个,容器、迭代器和算法容器用来管理某个特定对象的集合。每一种容器都有自己的优点和缺点,在项目中根据不同的需求,使用不同的容器。容器可以是数组、链表或者类字典。迭代器用于遍历对象集合的元素。这些集合可以是容器或容器的子集。每一个容器类都提供了它自己的迭代器类型。算法用来处理的元素的集合。例如,可以进行搜索...转载 2019-08-02 15:29:18 · 226 阅读 · 0 评论 -
STL(二)---算法
STL(二)—算法算法库定义了用来实现各种功能的函数(如查找、排序、计数、修改等),都是针对指定范围内元素的操作。需要注意的是,元素的范围以 [first, last) 的形式指定,其中 last 指的是范围内最后一个元素的下一个元素。在头文件 中定义。...原创 2019-08-03 16:10:58 · 176 阅读 · 0 评论 -
C++之标准库类型string和vector
标准库类型string(1) string表示可变长的字符序列,使用string类型必须首先包含string头文件,并添加声明:#include&amp;amp;amp;lt;string&amp;amp;amp;gt;using namespace std;(2) string对象初始化方法:string s1; //默认初始化,s1是一个空串string s2(s1); //s2是s1的副本s...原创 2019-03-11 20:05:27 · 536 阅读 · 0 评论