C++
卢克飞
Don't aim for success if you really want it,just stick to what you love and believe in,it will come naturally .
展开
-
堆排序
堆排序主要分为两步:第一步,将一组无序序列建立起小顶堆或大顶堆(完全二叉树)。第二步,输出堆顶的元素,然后对剩余的元素重新进行建立堆的过程(也就是第一步)。由于此代码数组的0位置是用作暂存其他数,所以在输入序列时,0号位不参与排序。#includeusing namespace std;void AdjustDown(int A[],int j,int len){A[0原创 2016-09-04 17:06:11 · 319 阅读 · 0 评论 -
【捡起C++】类和动态内存分配
C++在内存分配时,让程序在运行时决定内存分配,而不是编译时决定。 C++使用new 和 delete来动态控制内存。//strngbad.h -- flawed string class definition#include <iostream>#ifndef STRNGBAD_H_#define STRNGBAD_H_class StringBad {priva...原创 2019-05-17 23:20:05 · 191 阅读 · 0 评论 -
【捡起C++】对象和类
过程性编程和面向对象编程//stock00.h -- Stock class interface//version 00#ifndef STOCK00_H_#define STOCK00_H_#include <string>class Stock {private : std::string company; long shares; double share...原创 2019-05-12 22:17:14 · 106 阅读 · 0 评论 -
【捡起C++】内存模型和名称空间
单独编译 C++允许甚至鼓励将组件函数放在独立的文件中。可以单独编译这些文件,然后链接成可执行的程序。 如果只修改了一个文件,则可以只重新编译该文件,然后将它与其他文件的编译版本链接。 头文件中常包含的内容:函数原型使用#define 或 const 定义的符号常量结构声明类声明模板声明内联函数//coordin.h -- structure templates and ...原创 2019-05-07 20:29:11 · 151 阅读 · 0 评论 -
【捡起C++】使用类
运算符重载//mytime0.h -- Time class before operator overloading#ifndef MYTIME0_H_#define MYTIME0_H_class Time {private: int hours; int minutes;public: Time(); Time(int h, int m = 0); void AddMin...原创 2019-05-14 23:35:09 · 148 阅读 · 0 评论 -
【捡起C++】函数探幽
【捡起C++】函数探幽C++内联函数 执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(为此保留的内存块),跳到标记函数起点的内存单元,执行函数代码(也许还需将返回值放入到寄存器中),然后跳回到地址被保存的指令处 (这与阅读文章时停下来看脚注,并在阅读完脚注后返回到以前阅读的地方类似)。来回跳跃并记录跳跃位置意味着以前使用函数时,需要一定的开销。 ...原创 2019-04-30 01:15:31 · 165 阅读 · 0 评论 -
【捡起C++】分支语句和逻辑运算符
//if.cpp -----use the if statement#include <iostream>int main() { using std::cin; using std::cout; char ch; int spaces = 0; int totals = 0; cin.get(ch); while (ch != '.'){ if (ch == '...原创 2019-04-24 21:26:25 · 106 阅读 · 0 评论 -
【捡起C++】函数——C++的编程模块
函数通过将返回值复制到指定的CPU寄存器或内存单元中来将其返回。随后,调用程序将查看该内存单元。 返回函数和调用函数必须就该内存单元中存储的数据的类型达成一致。函数原型将返回值类型告知调用程序,而函数定义命令被调用函数应返回什么类型的数据。//arrfun1.cpp -- functions with an array argument#include <iostream>c...原创 2019-04-27 17:47:58 · 310 阅读 · 0 评论 -
【捡起C++】循环和关系表达式
//求阶乘#include <iostream>const int ArSize = 16;int main(){ long long factorials[ArSize]; factorials[0] = factorials[1] = 1LL; for (int i = 2; i < ArSize; i++){ factorials[i] = i * fac...原创 2019-04-22 23:45:45 · 149 阅读 · 0 评论 -
【捡起C++】复合类型
结构可以存储多个不同类型的值,而指针则是一种将数据所处位置告诉计算机的变量。字符串 C-风格字符串具有一种特殊的性质: 以空字符(null character)结尾,空字符被写作\0,其ASCII码为0,用标记字符串结尾。char dog[8] = {'b', 'e', 'a', 'u', 'x', '', 'I', "I"}; // not a stringchar cat[8...原创 2019-04-14 13:57:43 · 219 阅读 · 0 评论 -
C++实现高性能内存池
默认分配器及其性能测试一、概述项目介绍 在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配? 分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内存,当出现内存不足时就退出软件,是明显不合理的...转载 2019-04-20 19:01:10 · 840 阅读 · 0 评论 -
【捡起C++】程序创建的技巧①
源代码 —> 编译器 —> 目标代码 —> 链接程序 —> 可执行代码 编译源代码,将源代码翻译成机器语言,包含了翻译后的程序的文件就是目标代码。 链接是将目标代码同使用的函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段版本。 包含最终产品的文件被称为 可执行代码1、UNI...原创 2019-04-03 00:18:27 · 151 阅读 · 0 评论 -
【捡起C++】处理数据
【捡起C++】处理数据 面向对象的本质是设计并扩展自己的数据类型。 为了把信息存储到计算机中,程序必须记录3个基本属性:信息将存储在哪里要存储什么值存储何种类型的信息int braincount;braincount = 5;/* 程序找到一块能存储整数的内存,将该内存标记为braincount,并将5复制到该内存单元中;然后,可在程序中使用brain...原创 2019-04-12 10:56:41 · 248 阅读 · 0 评论 -
C++实现即时通信软件
1.1 实验内容本实验使用 C++ 实现一个具备服务器端和客户端的即时通信聊天室。这个项目会学习C++网络开发的基本概念,同时可以熟悉Linux下的C++程序编译方法及简单的Makefile编写。1.2 实验知识点C++语言基本语法基本的MakefileC++面向对象程序设计epoll 网络编程1.3 实验环境g++Xfce 终端2.1 需求分析在这个聊天室软件中我...原创 2019-04-11 10:25:41 · 10140 阅读 · 3 评论 -
【捡起C++】开始学习C++
C++预处理器和iostream文件 如果程序要使用C++输入或输出工具,需提供这样两行代码#include<iostream>using namespace std; 可使用其它代码替换第二行,这么使用可以简化代码。 C++和C一样,也使用一个预处理器,该程序在进行主编译前对源文件进行处理, 它处理名称以#开头的编译指令。在编译程序时,自动执行。#i...原创 2019-04-04 20:06:09 · 169 阅读 · 0 评论 -
【捡起C++】类继承
多态公有继承 同一个方法在派生类和基类中的行为是不同的。这种复杂的行为称为多态。有两种机制可以实现多态公有继承;在派生类中重新定义基类的方法使用虚方法方法在基类被声明为虚的后,它在派生类中将自动成为虚方法。//brass.h -- bank account classes#ifndef BRASS_H_#define BRASS_H_#include <str...原创 2019-05-18 16:22:54 · 165 阅读 · 0 评论