自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一骑绝尘的专栏

浅浅见解,多多指教

  • 博客(36)
  • 资源 (10)
  • 收藏
  • 关注

原创 STL vector map遍历失效,顺序容器和关联容器遍历时的erase()注意事项

1 区别关联容器(Associative Container):通过键(key)存储和读取元素的(vector,list,deque,stack,queue,heap,priority_queue,slist.)顺序容器(Sequential Container):通过元素在容器中的位置顺序存储和访问元素。(set,map,multiset,multimap底层机制都是以RB-tree)...

2020-02-11 20:07:29 372

原创 使用c++容器遍历时用erase()删除,出现死循环问题

先说下erase(),这个函数返回值是删除元素的下一个迭代位置,for(vector<int> ::iterator it = data.begin();it != data.end();++it){for(vector<int>::iterator it = data.begin();it != data.end();){ if(..) {...

2019-12-12 10:10:25 709

转载 STL std::sort 源码分析

转载自http://feihu.me/blog/2014/sgi-std-sort/最近在看sort源码,看到这篇博文很好,转发作为记录,转载侵权联系我删除背景在校期间,为了掌握这些排序算法,我们不得不经常手动实现它们,以加深对其的理解。然而这些算法实在是太常用了,我们不太可能在每次需要时都手动来实现,不管是性能还是安全性都得不到保证。因此这些算法被包含进了很多语言的标准库里,在C语言...

2019-12-10 13:55:23 347

原创 static静态变量作用

C语言中的:加在局部变量前面,静态变量,改变了原有变量的生存周期,但不会改变作用域!加在全局变量前面,限制作用域为文件作用域,只能在该文件中使用,不能被其他文件使用。加在函数前面,限制了函数的作用域到文件作用域。c++语言中:保持了C语言原有的特性外,还作用到了成员变量和成员函数上,成为静态成员对于静态成员使用有一定的规则:1 sizeof不能计算静态成员的大小2 ...

2019-03-29 09:53:21 1392

转载 程序员要知道的移位技巧

一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一

2017-08-24 10:17:14 662

原创 枚举类的赋值和基本操作

枚举类型的定义枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为:    enum {};其中:关键字enum——指明其后的标识符是一个枚举类型的名字。枚举常量表——由枚举常量构成。“枚举常量”或称“枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取

2017-08-05 09:04:58 25817

原创 ASCII码一览表

2017-08-04 20:05:51 279

原创 数组指针和指针数组区别图解

最近做了几道题对这个指针数组和数组指针整的比较模糊,然后查询了一些网上资料,整理了一下自己的理解。指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。其实可以通俗的理解,指针型数组《-

2017-08-04 15:30:11 663

原创 操作符优先级全列表,一览表

在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先

2017-08-04 10:49:19 4923

原创 C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别

本文是通过几篇转帖的文章整理而成的:http://www.slyar.com/blog/c-quotation-marks.htmlhttp://www.cnblogs.com/KingOfFreedom/archive/2012/12/07/2807223.html1、含义不同。用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中

2017-08-02 10:10:36 4332

原创 分辨出字符串中的重复数字并计算求和

描述:写段代码,定义一个字符串常量,字符串中只有大小写字母和整数,输出字符串中的出现最多的数字的和?例如 ” 9fil3dj11P0jAsf11j ” 中出现最多的是11两次,输出22。代码:int main(){ char str[] = "a2twx34je2"; int len = strlen(str); char buf[100]; int a[100];

2017-07-26 15:03:09 911

转载 0-1背包-动态规划

看了许多的0-1背包我感觉这一个讲的很清楚,推荐下。0-1背包http://blog.csdn.net/laoniu_c/article/details/38453083问题描述:给定n种物品和一背包。物品i的重量是w[i],其价值为v[i],背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?分析:对于一种物品,要么装入背包,要么不装。所以对于一种物品的装

2017-07-24 10:17:38 372

转载 c++中的左值和右值,左值引用和右值引用

转自:http://www.cnblogs.com/catch/p/3500678.html左值(lvalue)和右值(rvalue)是 c/c++ 中一个比较晦涩基础的概念,不少写了很久c/c++的人甚至没有听过这个名字,但这个概念到了 c++11 后却变得十分重要,它们是理解 move/forward 等新语义的基础。左值右值的定义左值与右值这两概念是从 c

2017-07-22 11:01:59 525

原创 <LeetCode>Add Two Numbers

Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and

2017-07-20 20:32:19 269

原创 字符串加减计算

描述:通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。 补充说明:1. 操作数为正整数,不需要考虑计算结果溢出的情况。2. 若输入算式格式错误,输出结果为“0”。代码:#include

2017-07-20 16:35:39 12301

原创 字符串压缩

把连续出现的字符压缩成单个字符问题描述:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc".2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xx

2017-07-20 15:11:50 331

原创 字符串过滤(删去重复字符)

问题:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。要求实现函数: void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr); 示例 输入:“deefd”        输出:“def

2017-07-20 13:46:08 1111

原创 公有继承和私有继承

确保 public inheritance 模拟 "is-a"使用 C++ 语言进行 object-oriented programming 时唯一最重要规则就是:public inheritance(公开继承)意味着 "is-a"。要让这个规则刻骨铭心。如果你写了一个 class D ("Derived") 从 class B ("Base") 公开继承,你就是在告诉 C++ 编

2017-07-18 14:55:37 670

原创 c++(成员函数的)重载、覆盖与隐藏

覆盖,和隐藏是很不一样的两个概念,要重点区分。重载(overload):同名函数变量,但属于不同的函数类型。发生在同一个作用域内,即在同一个类中。如果跨类,在父类、子类当中存在同名的函数变量(即便是不同的函数类型),如果是 virtual 性质的,就是重载(也叫继承,函数层面的继承),如果是 non-virtual 性质的,(只要子类中有一个同名函数变量没有用 virtual 修饰)就会发

2017-07-18 14:01:56 243

原创 浅析静态绑定和动态绑定

静态绑定 & 动态绑定静态绑定(statically bound),又名前期绑定(early binding);动态绑定(dynamically bound),又名延期绑定(late binding)。ps 英文名称摘自《Effective C++》 条款37。此条款中有关于“静态类型、动态类型”的描述。在 C 语言中并没有“静态绑定”、“动态绑定”的概念(至少我没有查到)

2017-07-18 13:59:34 758

原创 基数排序,桶排序

计数排序和桶排序都只是在研究一个关键字的排序,现在我们来讨论有多个关键字的排序问题。基数排序方法;从最低有效关键字开始排序,称为 LSD(Least Significant Dight)排序 。首先对所有的数据按照次要关键字排序,然后对所有的数据按照首要关键字排序。要注意的是,使用的排序算法必须是稳定的,否则就会取消前一次排序的结果。由于不需要分堆对每堆单独排序。通常,基数

2017-06-23 15:51:46 275

原创 计数排序

非比较排序: ,计数排序,基数排序,桶排序,时间复杂度能够达到O(n). 这些排序为了达到不比较的目的,对数据做了一些基本假设(限制)。如计数排序假设数据都[0,n] 范围内,且范围较小;基数排序假设数据都[0,n] 范围内;也是桶排序假设数据均匀独立的分布。而且,非比较排序的空间要求比较高,用空间换取时间吧。当我们的待排序数组具备一些基数排序与桶排序要求的特性,且空间上又比较富裕

2017-06-23 15:35:30 188

原创 选择排序

时间复杂度O(n^2), 空间复杂度O(1)排序时间与输入无关,最佳情况,最坏情况都是如此, 不稳定。代码:void sort(int arraytoSort){ for(int i = 0; i<arraytoSort.length-1; i++){ int min = i; int temp;

2017-06-23 15:29:24 161

原创 快速排序

比较排序的一种,其实快速排序是基于 “二分” 的思想。快速排序之所比较快,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。快速排序:时间复杂度 O(nlogn) 空间复杂度O(logn) 不稳定 【两个时间复杂度O(nlogn) 的排序算法都不稳定】由于关键字的比较和交换是跳跃进行的,

2017-06-21 20:02:43 189

原创 堆排序

时间复杂度 O(nlogn), 空间复杂度O(1). 从这一点就可以看出,堆排序在时间上类似归并,但是它又是一种原地排序,时间复杂度小于归并的O(n+logn)排序时间与输入无关,最好,最差,平均都是O(nlogn). 不稳定堆排序借助了堆这个数据结构,堆类似二叉树,又具有堆积的性质(子节点的关键值总小于(大于)父节点) 堆排序包括两个主要操作:保持堆的性质heap

2017-06-20 16:05:49 271

原创 冒泡排序

冒泡排序属于比较排序的一种。时间复杂度O(n^2), 空间复杂度O(1), 稳定,因为存在两两比较,不存在跳跃。排序时间与输入无关,最好,最差,平均都是O(n^2)。核心代码:void bubbleSort(int aarraytoSort[]){ for(int i=0;i<arraytoSort.length-1;i++){

2017-06-20 15:54:28 598

原创 归并(合并)排序

归并排序,一种比较排序,通过对数组中的元素进行比较得出排序结果。时间复杂度 O(nlogn),空间复杂度O(n) +O(logn)排序时间与输入无关,最佳情况,最坏情况都是如此, 稳定。原理:可以将数组分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数

2017-06-18 16:58:39 980 1

原创 插入排序算法

对于插入排序算法来说,它是一种比较排序的一种。以后的博文中我会陆续介绍其余的几种排序算法。时间复杂度O(n^2),空间复杂度O(1)排序时间与输入有关:输入的元素个数;元素已排序的程度。最佳情况,输入数组是已经排好序的数组,运行时间是n的线性函数; 最坏情况,输入数组是逆序,运行时间是n的二次函数。核心代码:void insertionSort(int

2017-06-18 16:35:35 201

原创 单片机外部中断应用

#include "STC/STC15F2K60S2.H"#define uchar unsigned charsbit K=P3^2; sbit BELL=P4^5;sbit Relay=P5^5;        //延迟    void delay02s(void)    {       uchar i,t=200;        while(t--)

2014-08-28 14:41:11 661

原创 DS18B20温度传感源代码

#include#include#define uint unsigned int #define uchar unsigned charsbit DQ = P1^4;                    //ds18b20数据通信口sbit SEGLE = P1^0;                //数码管段选锁存控制端口sbit DIGLE = P1^1;

2014-08-28 14:36:07 1208 2

原创 外部EEPROM,IIC总线和EEPROM通信技术

#include "STC/STC15F2K60S2.h" #include //包含NOP空指令函数_nop_(); #define AddWr 0xa0   //写数据地址,需要参考24c02芯片文档 #define AddRd 0xa1   //读数据地址 #define FALSE 0  #define TURE 1   sbit SDA=P2^1;

2014-08-28 14:29:28 1080

原创 单片机,矩阵键盘扫描驱动

void Delay30ms(){   unsigned char i,j;    for(i = 0;i       for(j = 0;j }/*************************************************        *函数名:Keyscan*        *函数功能:键盘扫描函数*        *全局变量:无

2014-08-28 14:19:35 656

原创 正向,反向,闪烁流水灯

#include "reg52.h" void led_delay(void)   {  unsigned char i,j;  for(i=0;i   for(j=0;j       ;}void forward(void)//正向流水点亮 {    P1=0xfe;   //第一个灯亮led_delay();         P3=0xfd;

2014-08-28 14:17:18 5036 2

原创 二次探测再散列散列表 源代码(数据结构)

/**********散列表**********/#ifndef HashTable_#define HashTable_ #include "Except.h" template class E,class K>class HashTable{public:HashTable(int divisor = 11);~HashTable(){delete

2014-08-05 13:45:51 2013

原创 带头节点的双向循环链表(数据结构)(带有遍历)

/*****************带头节点双向循环链表***************/#ifndef Double_#define Double_ #include #include "DoubleNode.h"#include "Excepte.h"#include "DCIterator.h"using namespace std; template

2014-08-05 13:41:31 3351

原创 单片机 电子时钟 (4*4键盘扫描)按键 源代码。

#include "STC/STC15F2K60S2.H"sbit SEGLE=P2^7;sbit DIGLE=P2^6;sbit LEDLE=P2^5;unsigned char code Tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code Tab1[10] = {0x

2014-08-05 13:33:05 3522

应用组合数学习题答案-冯速译-Applied Combinatorics(Second Edition)-Answers

应用组合数学 第二版 冯速译 习题答案

2016-11-05

数据挖掘 导论 简介

数据挖掘简介 对数据挖掘进行 全面详细的介绍 新手认识数据挖掘

2016-10-28

安徽大学 操作系统ppt课件

安徽大学 老师的ppt课件,计算机考研,很大帮助

2015-08-27

安徽大学 操作系统题库试卷

安徽大学 对计算机考研极大,有历年出题的操作系统题库

2015-08-27

安徽大学计算机学院数据结构期末考试试卷

考安徽大学的学子,这个期末试卷有20多套期末试卷和真题

2015-08-27

算法实验代码

贪心算法,动态规划,归并排序和插入排序额的时间复杂度比较算法,最大堆,优先队列等一些经典实验演示。

2015-08-19

LCD1602电子时钟源代码

LCD1602电子时钟源代码,实现小时分钟秒的电子时钟

2014-08-28

16x64点阵,左移,右移,多字滚动源代码

16x64点阵,左移,右移,多字滚动源代码

2014-08-28

图的遍历操作

图的一些操作包括深度优先遍历,宽度优先遍历,和图的遍历操作。

2014-08-06

二次在探测散列表

数据结构中用c++语言二次在探测散列表源代码

2014-08-06

空空如也

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

TA关注的人

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