C++学习笔记(10)运算符重载,友元函数,友元类

c++允许我们为运算符定义专门的函数,这被称为运算符重载: 运算符可以简化字符串的操作,‘+’,以及使用关系运算符比较字符串,[ ]运算符访问向量中的元素; 例如: #include <iostream> #include <string> #include <vector> using namespace std; int main() { string s1("Washton"); string s2("Calinifor"); cout << "First of s1
分类: 其他 发布时间: 01-13 23:16 阅读次数: 0

C++学习笔记(11) 重载流插入运算符和流提取运算符,以及自动类型转换

1. 重载<< 和>>运算符 <<和<<运算符可以被重载用于输入输出操作,在上一节中,我们对Rational对象进行输出时定义了toString()类成员函数。如何通过cout << r 直接输出Rational对象: 对于: r1 + r2, r1, r2和+都是Rational类的实例,因此,+可以被作为成员函数重载: 但是,对于cout << r 语句,运算符<< 有两个算子cout, r. cout 是ostream类的实例, r是rational类的实例,两个算子属于不同的类型,因此
分类: 其他 发布时间: 01-13 23:16 阅读次数: 0

c++学习笔记(12) 需要对对象做拷贝时(深拷贝,浅拷贝),如何重载赋值运算符

在c++学习笔记(8)中,介绍了拷贝构造函数的概念:涉及到深拷贝和浅拷贝的概念: 拷贝构造函数:每一个类都有一个都有一个拷贝构造函数,用于拷贝对象。拷贝构造函数可以用来创建一个对象,并用另一个对象的数据初始化新建对象。缺省的拷贝构造函数和赋值运算符(=)进行对象赋值采用的是一种所谓的“浅拷贝”,即如果数据域是一个指向其他对象的指针,那么就会简单复制指针保存的地址值,而不是复制指针指向的对象的内容。 如果没有显式的定义拷贝构造函数,C++会为每个类都定义一个缺省的拷贝构造函数。这个函数简单的将参
分类: 其他 发布时间: 01-13 23:16 阅读次数: 0

单纯形法求解最函数极值问题 matlab代码

最近整理以前的代码,将以前老师上课的作业代码重新整理,分享出来,作业的内容是编写单纯形法,对测试函数进行寻优(极大值或者极小值)。 首先介绍一下单纯形法:将上课的ppt转化为图片。ppt蓝色背景,眼睛快看瞎了 按照ppt的描述编写算法如下: clear all; clc; % mode可以选择测试函数 % mode = 'exp_test'; % mode = 'Schaffer'; mode = 'Rosen_Brock'; if strcmp(mode,'Schaffer')
分类: 其他 发布时间: 01-13 23:15 阅读次数: 0

python中按照文件夹中文件的排列顺序读取文件内容

在处理数据的过程中,文件夹下的文件有时候按照一定的规律命名,按照要求,有时需要将文件夹中的文件按照原始的顺序读取:假设文件目录如图所示: 按照: base_path = r'E:\download\generator\result' files = os.listdir(base_path) 返回的files列表会打乱文件的顺序,结果是不固定的。 需要对文件列表进行排序才可以: files.sort(key=lambda x: int(x.split('.')[0])) 这样就可以按照文件
分类: 其他 发布时间: 01-13 23:15 阅读次数: 0

c++学习笔记(13) 继承和多态

继承:从已有的类派生出新类 基类和派生类 不同的类之间可能有很多共通的属性和行为,这些属性和行为允许在一个类中通用化并被其他类所共享。类C1从类C2扩展而来,则C1称为派生类,C2称为基类,基类也称为父类或者超类,派生类称为子类,一个子类继承了其父类所有可访问的数据域和函数。同时可以增加新的数据域和函数 例如: 定义基类geometric,在此基础上生成circle类: 基类Geometric: geometric.h文件 #ifndef GEOMETRIC_H #define GEOMET
分类: 其他 发布时间: 01-13 23:15 阅读次数: 0

C++学习笔记(14) static_cast 与 dynamic_cast

dynamic_cast运算符能够在运行时将一个对象强制转换成其实际类型: 实际应用场景:在C++学习笔记(13)中,在main.cpp里面定义了displayGeometric()函数, void displayGeometric(const Geometric& g) { cout << g.toString() << endl; } 假设现在需要对这个函数进行修改: 函数参数类型不变,当参数时rectangle类型的对象时,输出width和height, 当参数是circ
分类: 其他 发布时间: 01-13 23:15 阅读次数: 0

关于使用tensorflow object detection API训练自己的模型-补充部分(代码,数据标注工具,训练数据,测试数据)

之前分享过关于tensorflow object detection API训练自己的模型的几篇博客,后面有人陆续碰到一些问题,问到了我解决方法。所以在这里补充点大家可能用到的东西。声明一下,本人专业不是搞这个的,属于爱好者这类的,而且已经时隔已久,可能很多东西已经遗忘了,有时候可能无法完美解答大家的问题,请大家见谅,但是大家有问题还是欢迎提问鸭,大家一起交流,共同进步!我也乐意向专业的同学学习(哈哈哈), 找了好久把以前的代码找到了。 ----------------------------
分类: 其他 发布时间: 01-13 23:14 阅读次数: 0

win10下pycharm+Qtdesigner+Pyqt 成功配置

请在安装之前,将整个博客看完之后再进行操作!我的安装过程有点曲折// 使用Qtdesigner做可视化的界面设计,是一项很强大的工具。今天用到了,就在pycharm下配置一下,随手做点记录 Qtdesigner可以可视化拖动生成界面。 我的环境: win10 pycharm+anaconda (python3.6.4) 配置过程: 1.在安装pyqt5的时候需要有sip的支持,sip是RiverBank(也就是PyQt的开发商)开发的用于PyQt的Python/C++混合编程解决方案。由于Qt
分类: 其他 发布时间: 01-13 23:14 阅读次数: 0

c++学习笔记(15) 异常处理

异常处理概述: 异常是用一个throw语句抛出,同时用try-catch来捕获,例如一个简单的例子: #include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "Enter two number: " << endl; int number1, number2; cin >> number1 >> number2; try { if(number2==0) //
分类: 其他 发布时间: 01-13 23:14 阅读次数: 0

c++学习笔记(16) 递归

递归:能够解决那些难以用简单循环解决的问题 例如:八皇后问题,阶乘 递归函数: 调用自身的函数 1.阶乘: 0 !=1 1!=1 n!=n*(n-1)! (n-1)!=(n-1)(n-2)! 假设函数factorial(n)为求n!; 如果调用到n=0的情况,函数直接返回结果,函数知道如何求解最简单的情形,称之为基本情况或者“停止条件”。如果参数大于0,函数将问题规约为求解(n-1)!的子问题。在递归中,子问题应该更简单或者更小,但是子问题和原问题具有相同的性质,可以用一个不同的参数调用本函数
分类: 其他 发布时间: 01-13 23:14 阅读次数: 0

C++课后题-递归

C++课后题: 1.采用递归逆序打印一个整数中所有的数字:(简单) #include <iostream> #include <string> using namespace std; void reverstNumber(int num) { if(num>0) { cout << (num%10); reverstNumber(num/10); } //cout << endl; } int main(int argc, char *argv[]
分类: 其他 发布时间: 01-13 23:13 阅读次数: 0

python制作gif 以及从gif中获得图片

先介绍python制作gif: 在用遗传算法的时候,想把种群进化过程中的接的分布动态的展示出来,所以就想到了制作gif,展示的时候直接贴到PPT里面就行,在网上找到一个gif在线制作的网站,不过那个网站体验极差,居然不能调整用于生成gif的图片顺序,之后突然想到之前看过一篇微信公众号文章介绍过python可以制作gif, 搜了一下果然找到多: 制作gif的图片是在matlab仿真程序中生成保存的: gif转换代码: import imageio, os images = [] base_pa
分类: 其他 发布时间: 01-13 23:13 阅读次数: 0

基于实数编码的参数自适应遗传算法(matlab代码)

实数编码的遗传算法寻优: 遗传算法的基本操作算子: (1)选择算子 选择算子的作用主要是避免优良基因的丢失,使得性能高的个体能以更大的概率被选中,有机会作为父代繁殖下一代,从而提 高遗传算法的全局收敛性及计算效率。常见的选择算子包括轮盘赌选择法、随机遍历抽样法、局部选择法及锦标赛选择法等。选择算子采用轮盘赌; (2)交叉算子 在遗传算法中,交叉算子是区别于其它优化算法的本质特征,用于组合新的个体在解空间中快速有效地进行搜索,同时也降低了对有效模式的破坏程度,起到全局搜索寻优的效果。交叉算子直接
分类: 其他 发布时间: 01-13 23:13 阅读次数: 0

数据结构与算法笔记(一) 程序性能分析

程序性能:一个程序对内存和时间的需要。要对数据结构和算法给予评价,就必须能够计算程序性能 1. 用操作数和执行步数估计程序的运行时间 2. 用符号法描述程序在最好,最坏,平均情况下的运行时间。 确定程序性能: 分析方法, 实验方法 知道两个概念: 空间复杂度:程序运行时所需的内存空间的大小 时间复杂度:运行程序所需要的时间 空间复杂度的组成: 1.指令空间:编译之后的程序指令所需要的存储空间 2.数据空间: 所有常量和变量所需要的存储空间 3.环境栈空间:环境栈用来保存暂停的函数和方法在恢复运
分类: 其他 发布时间: 01-13 23:13 阅读次数: 0

流畅的python 数据模型

一摞python风格的纸牌 import collections from random import choice card = collections.namedtuple("card", ["rank", "suit"]) # namedtuple()构建少数只有属性没有方法的对象 class FrenchDeck: ranks = [str(n) for n in range(2, 10+1)] + list("AJQK") suits = "spades d
分类: 其他 发布时间: 01-13 23:12 阅读次数: 0

身份证号有效性检验代码 (python)

身份证号码有效性检验: 输入:str类型的身份证号码 返回值: bool # 身份证号有效性验证 def id_number_valid(id_number): """ # 身份证号有效性验证 :param id_number: str类型 :return: """ # 输入参数字符串 total_sum = 0 multiply_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 1
分类: 其他 发布时间: 01-13 23:12 阅读次数: 0

数据结构与算法笔记(二) 线性表(数组描述)

c++常用的数据描述方法是数组描述和链式描述,线性表可以用来说明这两方法,先介绍数组描述的线性表。后面再介绍链式描述的线性表。 C++ STL容器vector和list相当于线性表的数组描述和链式描述。数组描述方法将元素存储在一个数组中,所有元素依次存储在一片连续的存储空间,这就是所谓的顺序表 数据对象和数据结构: 数据对象是一组实例或值。 // 数据实例 理解:数据对象int, 5是数据对象 int 的实例。 还有string, digit之类的数据对象 数据对象通常会有一系列i相关的操作或
分类: 其他 发布时间: 01-13 23:12 阅读次数: 0

数据结构与算法笔记(三) 线性表(链式描述) 链表

在链式描述中,线性表元素的位置在内存中是随机的,每个元素都有一个明确的指针指向线性表的下一个元素的位置。 1.单向链表: 数据对象的每一个元素都用一个单元或者节点来描述,每个节点都明确包含另一个相关节点的位置信息。 线性表的链式描述图如下所示: 每个节点只有一个链,这种结构称为单向链表 重点: 链表的插入与删除 结构chainNode,数据成员element是节点的数据域,存储线性表的元素,数据成员next是节点的链域,存储下一个节点的指针。 定义链表类chain: 首先定义链表的节点的数据结
分类: 其他 发布时间: 01-13 23:12 阅读次数: 0

vector 接口模拟实现

vector 接口模拟实现 vector部分常用成员函数的模拟实现 private: //成员数据 T* _start; //指向开头地址 T* _finish;//指向最后有效长度的后一个地址 T* _endofstorage; //指向开辟容量的后一个 构造函数 无参构造 Vector() //无参构造 :_start(nullptr), _finish(nullptr),
分类: 其他 发布时间: 01-13 23:11 阅读次数: 0