自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bernie.John

个人学习笔记 欢迎大家帮我查漏补缺

  • 博客(12)
  • 资源 (12)
  • 收藏
  • 关注

转载 传入传出参数

1.传出参数:会从函数带出来的值(起到函数返回值的作用)   传入参数:原本有值,供函数使用2.函数返回值的注意事项     ①不能返回局部变量的地址②返回值-1,0,1这些,尽量用宏     ③主函数return 0的作用:正常退出(对操作系统负责,良好的编码习惯)      exit是结束一个程序,reurn 是结束当前函数3.函数编码规范(自己整理

2016-12-12 14:23:22 1188

原创 指针 数组 优点缺点分析 及 调用函数的流程

1.指针的优势:          ①可以直接访问硬件 访问速度快          ②提高空间的利用率          ③指针使用地更加灵活      空间分配                     访问效率  指针保存的是地址(4字节) 直接 快      数组保存的是一片连续的空间   定位 加减 2.指针与数组的区别:     ①空间分配

2016-12-12 14:07:40 5407

原创 数组的输入输出 main函数形参

1. 一维数组的输入输出  给char a[100]输入时     ① gets(a);     ②scanf("%s",a);      注意:空格也会结束          ③while((ch = getchar()) != '\n')        {               a[i] = ch;               i++;        }

2016-12-12 11:50:47 542

原创 数组的一些介绍与注意点

一、数组名是指针常量,这个指针常量保存数组首元素的地址对数组名取地址是数组的地址二、[  ] == *(  ) 三、对于整型一维数组a来说:          a : 数组名,表示指针常量,保存数组首元素的地址          &a:代表数组的地址     对数组名取地址 == 数组的地址          *(&a) == a     对移位数组的地址取值 == 一

2016-12-05 23:52:39 265

原创 指针赋值的一些说明

一、指针变量保存的是地址不同地址 步长不一样二、为什么要对malloc强制类型转换?   因为:指针一定要相同(步长)类型赋值 (长给短 会丢失数据 短给长会取多个数据) 例:char *ptr(char *)malloc(sizeof(char)*100)三、浮点型指针不能和其他类型指针赋值四、警告:从不兼容的指针类型赋值          说明不同类型的指针不能赋值

2016-12-05 23:46:07 568

转载 linux下c语言指针部分的一个总结

1、指针的定义与初始化如何理解指针? 首先要在回答指针是什么时一定要说指针是变量,这样的话,指针就有了变量的特性。 (1) 系统为指针分配内存空间; (2) 指针有自己的地址; (3)指针能够存值,但这个值比较特殊–地址。 指针的字节长度: 任何类型指针的长度都是4个字节(32)系统,指针变量是一个地址,在操作系统中地址的长度是固定的。2、* 与&运算符详解(用于取

2016-12-05 23:32:54 282

转载 回调函数

1.回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。2.回调函数就相当于一个中断处理函数,由系统在符合你设定的条件时自动调用。为此,你需要做三件事:1,声明;2,定义;3,设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数,以便于系统调用。3.所谓回调函数就是按照一定的形式由你定义并编写实现内容,当发生某种事件

2016-12-05 23:31:34 207

转载 malloc实现原理

malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。   动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分配,且

2016-12-02 23:10:48 250

原创 什么是野指针如何避免野指针

野指针:指向不确定地址的指针变量。(即没有初始化) (随机指向一块内存的指针)使用野指针易因内存泄露出现段错误。因为它随机指向的地址可能被分配了内存,不一定每次都产生段错误.而造成内存泄露的原因有两个:1.访问了没有权限的内存(平时我们正确使用指针的时候,系统应经将相应的内存分配给用户,但是如果指向没有分配的内存,系统会判定我们没有权限)2.访问了已经释放了

2016-12-02 23:07:42 869

转载 全局变量 局部变量

一、变量的分类 变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数

2016-12-02 22:56:58 281

转载 倒置单词的小程序

编写一个C函数,将“i am from shanghai"倒置为“shanghai from am i",及将句子中的单词位置倒置,而不改变单词内部结构。#include #include #define MAX_SIZE 1024void reverse_string(char *s1, int len){    int i;    char

2016-12-02 22:54:17 259

转载 如何用scanf输出一个句子

首先明确 scanf的结束标志是空格和回车键,而gets的结束标志为回车键,输入字符串时,一般采用gets因此有下面两种方法可以在使用scanf时完整输入字符串1)利用strcat()函数来实现带空格字符串的输入,可以用字符串追加函数strcat()来连接每个单词。 Strcat()一般格式:char*strcat(char*dest,const char*

2016-12-02 22:50:16 937

ICDAR2015 +2017部分

数据集++

2018-12-11

SWT C++ OPENCV 像素点文字检测

SWT C++ OPENCV 像素点文字检测 分享一下 看看和基于区域的区别有多大

2018-11-29

测试训练集用 包括多次识别和画框

写了测试用的 顺便混点C币 有需要自取 基于c+ 有问题请在下方留言

2018-11-27

C++/python opencv_traincascade训练自己的检测器

C++/python opencv_traincascade 训练自己的检测器 包括了自动化脚本 自己获取图片路径

2018-11-27

chi_sim简体中文3.02

之前上传了一个chi_sim简体中文4.0 这次补发一个chi_sim简体中文3.02

2018-11-27

chi_sim.traineddata加OCR安装包

之前想下感觉50太贵 找到了最新资源挂了出来 大家可以下载 有问题留言联系我

2018-11-27

机器学习与python实践的思维导图 思维架构

自己整理的学习架构,有着入门所有方向 如果遇到难处 也可以找我一起学习

2018-11-22

TXT解析器——将需要的信息自动转化为字典

自动化脚本 将需要的有效信息做成字典 本处将手机log中CA组合抓取并做成了一个字典

2018-09-07

机器学习入门——鸢尾草

通过这个小项目可以了解机器学习的全部流程 可以对机器学习有个基本认识

2018-09-07

基于python的TXT解析器 parser 包含各个版本的代码 见注释

用python根据需求完成一个TXT解析器的简单开发 一 修改说明: 需求一: 一开始说要解析UECapabilityInfo 消息里的supportedBandCombination-r10 这个IE里的CA组合转化成易阅读的表现形式. 我以为一组CA组合就是一组: bandEUTRA-r10 ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 功能实现: 有效信息筛选:于是就用循环把UECapabilityInformation的数据里每一行作为一个元素放到list里面 然后用bandEUTRA-r10作为一组CA的识别信息、在筛选出同组ca-BandwidthClassUL-r10、ca-BandwidthClassDL-r10、supportedMIMO-CapabilityDL-r10的信息,添加保存到字符串中,然后再把字符串作为元素添加到list中去。最后遍历list的元素写入目标文件 需求二: 然后收到反馈CA组合的理解是错误的。一组CA组合应该是以大括号作为识别的,里面可能包含多组: bandEUTRA-r10: ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 CA组合识别原理:在查看UECapabilityInformation内的CA组合后 发现CA组合内第一个 bandEUTRA-r10因为比其他bandEUTRA-r10多了一层的CA组合的大括号,所以如果给每一行增加索引的话就会发现除了第一个bandEUTRA-r10,其他bandEUTRA-r10到上一个supportedMIMO-CapabilityDL-r10的距离都是一样的,为了减少复杂度,我删除了所有’{’,这样所有除了所有CA组合第一个bandEUTRA-r10往上第四行是’}’其他bandEUTRA-r10的往上第四行都是supportedMIMO-CapabilityDL-r10 功能实现: 添加索引:便利时用了for enumerate()循环,这样便利时可以在循环时,自动为每个元素生成索引 CA组合识别:在识别到bandEUTRA-r10时,增加一个判断if datalist1[index-4].startswith(),如果bandEUTRA-r10的往上第四行是supportedMIMO-CapabilityDL-r10说明同组CA未结束,把筛选的有效信息强制类型转换后添加在上个元素末尾,反之则说明是个新的CA组合,往列表里添加一个新的元素。 需求三: 之后收到反馈CA组合虽然识别了,但是排序不行,需要按照CA组合支持的band进行排序 功能实现: 排序:于是我在识别完CA组合后,增加了一个循环和count(),用CA组合里的’-’给它们归类 比如1AA,11A,21AA是一类;1A-1A,2A-1AA,3A-1A是一类 在用一个中间变量保存开头的band的数字,一个类中把开头支持band的数字字母相同的CA组合归为一行 比如1A-21A,1A-22A一类1AA-2AA 1AA-3AA为一类 需求四: 之后收到反馈,CA组合分类不能只按照开头比较分类,不然一但数据多了会对查阅带来极大不便,应该按照每组CA组合中bandEUTRA-r10的值进行判断,比如1AA-2AA,1A-2AA和1AA-2A应该归在同一行 实现原理:首先我想的是按位比较数字,但是因为字母的数量不稳定,数字的位置不一定对应,然后我就想把数字全部提取出来作为索引,在相应的索引后面添加同组元素,用dict来实现排序。难点就在于从字符串中提取数字。后来在python的正则表达式中找到相关的处理函数compile()(设置匹配对象类型)和findall()(找到所有匹配对象并以list返回)。 功能实现: 第二次排序:在上次的排序中我保留了分类和从小到大的排序。方便提取索引时,索引也是从小到大。每遍历一个元素(CA组合有效信息),就compile()和findall(),从该元素中提取数字组合(在compile()的参数中添加()就能够使提取的内容成为一组数据),然后通过dict自带函数setdefault()添加索引,并可以设置索引值为list类型(dict类型的索引的值不可变,但如果类型为list,list的内容可以进行改动),避免重复索引,在本次遍历中完成将元素添加到索引值对应的list中去 需求五: 之后对程序进行测试,在测试test2时发现layers增加了fourlayers类型后,用来代表layers的数字2和4会影响分类结果。比如1AA(2)-1AA(2)和1A(4)-1A(2)会被归为两类。 test1:当CA组合的格式为xx-xx-xx-xx-xx(最长可识别为五位元素的组合,再长就需要修改代码) test2:当CA组合包含fourLayers test3:当CA组合缺失某种格式比如xx-xx时发现layers增加了fourlayers 功能实现: : 解除layers对排序的影响:用II 和 IV替代2,4来表示layers,测试后不影响阅读与分类 二、整体程序架构: 1.通过循环和自带的startswith()先将每组CA组合的有效信息识别 2.通过sorted()函数将所有CA组合从小到大排列 3.通过count()函数将所有CA组合根据格式不同分类 4.通过循环和正则表达式的split()对所有CAlist数据进行处理(用split处理只是防止出现不必要的错误) 5.通过循环和正则表达式compile()和findall()识别所有CA组合中数字,并将同一组合中的数字合为一个元素(在同一循环,用这个数字的元素作为一个dict的索引),用dict自带的setdefault()进行Key的添加顺便设置Key的值为list,避免Key重复,在用append把当前Key的字符串,添加到Key对应值的list中去 6.最后对dict整体遍历,将每一个Key的值输出到文本中去。

2018-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除