
C++
文章平均质量分 64
C++相关
海绵海
苟有恒,又何必三更起五更眠;最无益,莫过于一日曝十日寒
展开
-
大话设计模式学习笔记1(C++)
开始学习《大话设计模式》(作者:程杰 清华大学出版社),用博客记录学习过程,以激励自己坚持学习,下面正式开始学习,奥利给…第一章 代码无错即是优?——简单工厂模式1.1 面试受挫该小节作者抛出了一个问题:请用C++、JAVA、C#或者VB.NET任意一种面向对象编程语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。下面自己用C++先实现一下/*先理一下思路:1、输入:两个数和运算符号2、输出:计算结果3、面向对象:实现一个类MyCalculator{成员变量:原创 2021-02-13 21:18:08 · 519 阅读 · 0 评论 -
C++ deque容器
基本概念deque(double-ended queue)双端队列https://www.cnblogs.com/bokeyuan-dlam/articles/9409989.html原创 2021-02-11 15:39:19 · 3162 阅读 · 2 评论 -
C++ vector容器
vector基本概念功能vector数据结构和数组非常类似与普通数组区别数组的空间是静态的,vector的空间可以动态扩展动态扩展当发现原来空间不够时,则申请一个更大的内存空间,并将原空间的数据拷贝到新空间,同时释放原空间。vector构造函数函数原型:vector(); //默认构造函数,使用vector<T> vec;vector(v.begin(), v.end()); //创建vector对象,并使用v[being,end)(前开后闭)的原创 2021-01-27 23:48:34 · 278 阅读 · 0 评论 -
C++ string容器
string基本概念 本质string 是C++风格的字符串,而string本质上是一个类 string 与 char* 区别char* 是一个指针,指向一个内存空间string 是一个类,类内部封装了char*,并提供了很多成员方法string 对内存空间进行管理,不需要担心复制越界和取值越界等string构造函数 构造函数原型:string(); // 默认构造函数,创建一个空的字符串string(const char *s); // 创原创 2021-01-26 23:19:50 · 162 阅读 · 0 评论 -
STL简介
STL基本概念STL(Standard Template Libray, 标准模板库)——基于泛型编程(函数模板和类模板)实现常用数据结构和算法的一套标准库。STL从广义上分为:容器(container)、算法(algorithm)和迭代器(iterator)STL几乎所有代码都采用了函数模板和类模板STL的六大组件STL可分为六大组件:容器、算法、迭代器、仿函数、适配器(配接器)和空间分配器容器(Container) —— STL定义的各种数据结构,用于存放数据;包括vector、lis原创 2021-01-24 23:16:19 · 301 阅读 · 0 评论 -
类模板实现通用数组类
要求可以对内置数据类型及自定义数据类型的数据进行存储将数组中的数据存储到堆区构造函数可以传入数组的容量提供对应的拷贝构造函数以及operator=防止浅拷贝问题提供尾插法和尾删除法对数组中的数据解析增加和删除可以通过下标的方式访问数组的元素可以获取数组中当前元素个数和数组的容量分析使用模板类myArray{public: 构造函数(容量) 拷贝构造函数 operator= 尾插 尾删 下标访问operator[] 获取容量 获取大小 析构函数private:原创 2021-01-20 01:42:53 · 567 阅读 · 0 评论 -
C++程序的内存划分——栈区、堆区等
C++程序内存划分对于一个C++程序,其占有的内存可分为以下几部分一段经典的例子程序,帮助理解//main.c#include<string.h>#include<stdlib.h>int a = 0;//全局区 初始化char *p1; //全局区 未初始化int main(){ int b = 0;//栈区 char s[] = "abc";//栈区 char *p2;//栈区 char *p3 = "123456";//123456\0在常量区原创 2021-01-19 22:56:25 · 192 阅读 · 0 评论 -
C++类模板
C++模板是泛型编程的基础,在C++中模板包括:函数模板类模板文章目录类模板定义使用类模板和函数模板的区别类模板定义template <class T>类声明和定义使用template <class nameType, class ageType>class Person{public: Person(nameType name, ageType age) { this->mName = name; this->mAge = age原创 2021-01-19 20:07:12 · 193 阅读 · 0 评论 -
C++函数模板
C++模板是泛型编程的基础,在C++中模板包括:函数模板类模板文章目录函数模板定义使用自动类型推导显式类型指定使用注意事项案例函数模板和普通函数的区别函数模板定义一个函数的模板,编译器可根据传入参数的类型生成相应的函数,实现了写一个函数可适配不同输入参数。模板对类型进行了参数化,提高了代码的通用型。定义 template <typenamne T> 函数声明和定义template — 声明创建模板typename — 表明其后的符合是一种数据类型,和class等同T原创 2021-01-17 15:30:04 · 222 阅读 · 0 评论 -
选择排序
选择排序原理选择排序通过每一趟遍历从待排序的元素中找到最大(最小)的元素,将找到的元素放至已排序的元素之后,直到最后一个元素放到指定位置。思路1、首先从原始序列中找到最大(最小)的元素,将最大(最小)的元素和第1个元素交换位置2、再遍历剩余的n-1元素(即未排序元素),找到其中最大(最小)的元素,将最大(最小)元素和第2个元素交换位置(即和未排序元素的第1个元素交换位置)3、以此,对剩余的n-i未排序元素重复进行第二步操作,每次都将最大(最小)元素交换至第i+1个位置(未排序元素的第1个位置),原创 2021-01-17 13:32:45 · 171 阅读 · 0 评论 -
冒泡排序
冒泡排序原理依次比较相邻的元素,满足条件进行交换。思想假设一个有n个元素的序列1、第一轮,通过依次不断比较相邻的元素,满足条件(大于或者小于)的则进行位置交换,对一个有n个元素的序列进行一轮比较后,则最小或者最大的元素则放到最后位置,2、接下来再对n-1进行1的操作后,则n-1个元素中最小或者最大得的则放到了倒数第2个位置3、以此类推,依次对n-2、n-3、…2、1个元素进行第2步操作,则完成了序列的排序。过程:对5,8,4,5,2序列进行从小到大排序:第一轮比较过程5,8,4,5,2原创 2021-01-17 02:45:21 · 285 阅读 · 1 评论