1 TinnCHEN

尚未进行身份认证

暂无相关描述

等级
TA的排名 43w+

KMP模式匹配算法改进

KMP模式匹配算法:https://blog.csdn.net/TinnCHEN/article/details/93459873KMP模式匹配算法改进:对于next数组进行了改进。当子串在重复部分匹配失败时,我们发现之前的KMP算法会一位一位往前比较,其实2,3,4,5步骤的判断是多余的。因此我们可以直接跳过重复部分,让首字符直接跟发现不匹配字符部分的后一位进行比较。总结即,子串重复...

2019-06-24 11:55:39

KMP模式匹配算法

意义:当子串有多个相同部分时,与朴素模式匹配算法相比,大大减少了循环次数。时间复杂度由O((n-m+1)*m)变为O(n+m)。重点:对用于匹配的子串的next数组的构建。next数组表示若当前位不匹配我们该从第几位开始重新比较。next数组举例说明:我们用j来表示子串中第几位,为方便我们从1开始计数。eg1:当子串无重复时子串abcdx1、j=1,next[1]=0;2...

2019-06-24 09:24:23

c++primer——重载运算与类型转换

1、重载的运算符是具有特殊名字的函数。对于一个运算符来说,它或者是函数成员,或者至少含有一个类类型的参数。我们只能重载已有的运算符。无法重载这个四个运算符:::.*.?:2、部分制定了运算对象求职顺序的运算符不该被重载,特别是,逻辑与,逻辑或、取地址和逗号运算符。原因是,这些关于运算对象求职顺序的规则无法应用到重载的运算符上,去求值顺序规则无法保留。并且&&和||的重载半...

2019-04-21 15:47:56

拷贝控制c++primer13章

1、一个类通过定义五种特殊的成员函数来啊控制这些操作:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数。2、拷贝构造函数:如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。且通常不为explicit的,eg:classfoo{public:foo();foo(constfoo&);//拷贝构造...

2019-04-18 16:13:08

自定义简易string类c++primer13.44

头文件#pragmawarning(disable:4996)//可参考上一篇解决c4996问题的博客#include<iostream>#include<memory>#include<algorithm>#include<utility>classString{public: String(){ element...

2019-04-16 21:50:03

error C4996: 'std::_Uninitialized_copy0':与错误 LNK2001 无法解析的外部符号 "private: static class std::allocator

/*在构造简易版vector<string>时遇到这两个问题,代码如下:*/#include<memory>#include<iostream>#include<string>#include<utility>#include<vector>classStrVec{public: StrVec():...

2019-04-16 13:50:17

文本查询程序c++primer12.32

头文件#include<iostream>#include<vector>#include<new>#include<set>#include<map>#include<fstream>#include<algorithm>#include<memory>#include<sst...

2019-04-11 11:11:35

c++动态内存智能指针及weak_ptr用法的理解

静态内存1、静态内存:用来保存局部static对象(第一次经过时初始化直到程序终止才销毁,贯穿函数调用及之后的时间)、类static数据成员(与类本身相关与类对象无关,不能为const,不包含this)以及定义在任何函数之外的变量。2、栈内存:用来保存定义在函数内的非static对象。3、对于1和2,由编译器自动创建和销毁。智能指针shared_ptr4、为了避免使用动态指针带来的风险(...

2019-04-10 21:43:16

c++primer——关联容器的使用

一、顺序关联容器(一)、容器的种类顺序关联容器有四种:可以按照关键字是否重复分为两类:1、不重复:map:保存key-valueset:保存key2、可以重复:multimap:保存key-valuemultiset:保存key(二)、关键字(key)的要求1、关键字类型必须定义元素比较的方法,所提供的操作必须是严格弱序,即<=。2、当我们想使用自定义的操作,必须在定...

2019-04-03 16:08:21

c++primer——第十章泛型算法lambda

一、谓词谓词是一个调用表达式,其返回结果是一个能用做条件的值。标准库算法为此分为两类:1、一元谓词(意味着只能接受单一参数)2、二元谓词(意味着他们有两个参数)接受谓词的算法对输入序列中的元素调用谓词。因此元素类型必须能转换为谓词的参数类型。以sort和isShorter举例eg:boolisShorter(conststring&s1,conststring&...

2019-03-25 12:26:23

c++primer——第十章泛型算法所提到的函数总结

泛型算法定义:泛型因为他们可以用于不同类型的元素和多种容器类型(不仅包括标准库类型,还包括内置的数组类型),以及我们将看到的,还能用与其他类型的序列。算法因为他们实现了一些经典算法的公共接口。本章所介绍的几个函数find:定义在头文件algorithm中,有三个参数,其中前两个至少为输入迭代器(指针),第三个参数是一个值。他返回第一个等于给定值元素的迭代器。从第一个参数开始寻找,如果没有找...

2019-03-25 10:41:16

C++primer1-7章知识点总结——显示转换

warning:虽然有时候不得不使用强制类型转换,但这种方法本质上是非常危险的!命名的强制类型转换:形式:cast-name<type>(expressopn)//type是expression要转换的值。如果type是引用类型,则结果是左值。static_cast任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。//进行强制类型转...

2019-02-18 09:37:07

C++primer1-7章知识点总结——sizeof运算符

定义:sizeof运算符返回一条表达式或一个类型名字所占的字节数。sizeof运算符满足右结合律,其所得的值是一个size_t类型的常量表达式。(size_t类型是一种机器相关的无符号类型,足够大可以表示内存中任意对象的大小)使用方法:sizeof(type);sizeofexpr;注:sizeof的结果部分依赖于其作用的类型:1、对char或者类型为char的表达式执行si...

2019-02-18 08:42:34

C++primer1-7章知识点总结——顶层const与底层const

顶层const表示任意对象/数据类型本身为常量底层const与指针和引用等复合类型的基本类型有关注:(1)用于声明引用的const都是底层const(2)指针类型既可以是顶层const也可以是底层consteg:inti=0;int*constp1=&i;//p1为顶层const,其值不能改变constintci=42;//ci为顶层const,...

2019-02-16 09:28:15

C++primer1-7章知识点总结——vector以及迭代器的相关运用

vector定义:vector也常被称作容器,表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个与之对应的索引,索引用于访问对象。使用时需添加头文件。vector是一个类模板使用时需实例化。eg:#include<vector>#include<string>usingnamespacestd;vector&am

2019-02-12 11:40:00

c++primer第五版7.23题知识点

classscreen{public: typedefstring::size_typepos;//定义类型成员(string::size_type类型见类下方注释),还可以使用using类型别名来定义usingpos=string::size_type; screen()=default;//因为我们有定义构造函数,所以默认构造参数应该显示声明 screen(pos...

2019-01-24 11:30:13

引入const成员函数

classPerson{public: Person(strings,stringa);stringPerName; stringPerLive; conststring&GetName()const{returnPerName;}//(1)stringGetLive()const{returnPerLive;}//(2...

2019-01-23 09:47:55

c++ typedef的一些理解

c++typedef的一些理解chara='a';constcharb='b';constchar*c=&b;typedefchar*pstring;constpstringcstr=&a;

2019-01-20 15:44:14

为什么二叉树中叶子节点个数等于度为2的节点个数+1

证明:设:节点总个数为n,叶子节点个数为n0n_0n0​,度为1的节点个数为n1n_1n1​,度为2的节点个数为n2n_2n2​,边的个数为b。n=n0n_0n0​+n1n_1n1​+n2n_2n2​b=n-1可得b=n0n_0n0​+n1n_1n1​+n2n_2n2​-1另b=n1n_1n1​+2*n2n_2n2​则n0n_0n0...

2018-11-13 09:05:47

关于BP算法的一点理解

关于BP算法的一点理解由于最近在撸毕设初次接触机器学习的神经网络部分今天学习了前馈神经网络的部分,仅供自身学习总结用,有不足之处还望指教。前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。是目前应用最广泛、发展最迅速的人工神经网络之一。研究从20世纪60年代开始,目前理论研究和实际应用达到了很高的水平。...

2018-04-09 13:51:13
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。