C++进阶
继承、多态、异常、智能指针、类型转换、关联式容器、空间配置器、STL总结、C++11
贪心的葡萄
算法与数据结构,计算智能,进化计算,神经网络,C/C ,linux,python,matlab
展开
-
设计模式:策略模式
设计模式:策略模式策略模式用于解决if…elseif…else…类场景带来的可扩展性差等问题。策略类#ifndef __strategyPatterns_strategy_hpp__#define __strategyPatterns_strategy_hpp__#include <stdio.h>class strategyPatterns_strategy_basic{public: virtual void getStrategy() = 0;};cl原创 2022-03-13 21:02:37 · 494 阅读 · 0 评论 -
设计模式:观察者模式
设计模式:观察者模式观察者模式也称发布订阅模式,发布者发布消息,订阅者接收消息。发布者接口#ifndef __observerPatterns_publish_hpp__#define __observerPatterns_publish_hpp__#include "observerPatterns_subscribe.hpp"class observerPatterns_publish{public: virtual void registerObjectSubscrib原创 2022-03-12 17:28:18 · 776 阅读 · 0 评论 -
C++11新特性
1、C++11简介C++11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,不仅功能更强大,而且能提升程序员的开发效率。2、列表初始化C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型,使用初始化列表时,可添加等号(=),也可不添加。内置类型的列表初始化vector<int> v{1, 2, 3};自...原创 2020-02-11 13:49:13 · 369 阅读 · 0 评论 -
C++_STL总结
1、STLSTL是标准模板库:是高效的C++程序库,其采用泛型编程思想对常见数据结构(顺序表、链表、栈和队列、堆、二叉树、哈希)和算法(查找、排序、集合、数值运算)等进行封装,体现着泛型编程程序设计思想以及设计模式,已被集成到C++标准程序库中。STL中包含了容器、适配器、算法、迭代器、仿函数以及空间配置器。STL设计理念:追求代码高复用性以及运行速度的高效率。2、STL六大组件容器分...原创 2020-02-10 14:42:10 · 222 阅读 · 0 评论 -
C++_MYSQL操作
C/C++连接MYSQLMYSQL中的测试数据库create database connection_test;use connection_test;create table table_test( id char(10) primary key, val_1 char(20) not null, val_2 char(20) not null);C++连接MYSQL示例#...原创 2020-02-10 13:55:41 · 122 阅读 · 0 评论 -
C++_unordered系列的关联式容器
1、unordered系列的关联式容器unordered_map(1)unordered_map是存储<key, value>键值对的关联式容器,其允许通过key快速的索引到与其对应的value。(2)在unordered_map中,键值通常用于唯一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。(3)在内部,unordered_map没有对&...原创 2020-02-09 14:08:55 · 257 阅读 · 0 评论 -
C++_树形结构的关联式容器
1、关联式容器STL中vector、list、deque等这些容器称为序列式容器,因为其底层为线性序列的数据结构,里面存储元素本身。关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。2、键值对用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,...原创 2020-02-07 20:18:15 · 532 阅读 · 0 评论 -
C++_智能指针
1、为什么要用智能指针内存泄漏问题:malloc出来的空间,没有进行free,会导致内存泄漏异常安全问题:如果在malloc和free之间存在抛异常,那么还会导致内存泄漏,这种问题叫异常安全#include<iostream>#include<cstdlib>#include<vector>using namespace std;int m...原创 2020-02-03 15:45:13 · 193 阅读 · 0 评论 -
C++_异常
1、C错误处理方式C语言基本上都是使用返回错误码的方式处理错误,使用终止程序处理严重错误。终止程序:如assert。如发生内存错误,就会终止程序。用户难以接受。返回错误码:如系统的很多库的接口函数都是把错误码放到errno中表示错误。需要自己去查找相对应的错误。2、C++异常概念异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理...原创 2020-02-03 09:57:13 · 122 阅读 · 0 评论 -
C++_类型转换
1、C语言类型转换#include<stdio.h>int main(){ int i = 1; //隐式类型转换 double d = i; printf("%d, %.2f\n", i, d); int *p = &i; //显式类型转换 int addr = (int)p; printf("%x, %d\n", p, addr); retu...原创 2020-02-02 20:13:09 · 143 阅读 · 0 评论 -
C++_多态
1、多态的定义多态就是多种形态,就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。在继承中要构成多态还有两个条件:必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写#include<iostream>using namespace std;cla...原创 2020-02-01 16:44:22 · 182 阅读 · 0 评论 -
C++_继承
1、继承的定义继承是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类称派生类。#include<iostream>using namespace std;class Person{public: Person(const string& name = "", const int& ag...原创 2020-02-01 13:48:33 · 302 阅读 · 0 评论