自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 判断素数算法的改进

1.素数的定义:如果一个正整数n只能被1和它本身整除,则这个正整数n就是素数(prime)。2.1  IsPrime的简单版本(1)检查1到n之间的每个数,看它是否能整除n。(2) 每次遇到一个新约数,计数器加1。(3)在所有的数都被测试以后,检查约数计数器的值是否为2。程序如下:bool IsPrime(int n){ int divisors = 0; for(

2016-11-14 10:54:05 955

原创 C语言--符号常量

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。其特点是编译后写在代码区,不可寻址,不可更改,属于指令的一部分。符号常量有以下几种方式定义:一、#define符号常量在使用之前必须先定义,其一般形式为:形式为:#define 标识符 常量eg: #define PI 3.14                   //没有分号#define 是一条预处理命令(预处

2016-09-25 15:33:07 23304 2

原创 浪潮编程题

1、递增序列时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;其他语言 589824KB题目描述:小B对数学颇有研究和爱好。她最近在研究数值序列,她感兴趣的是递增序列,因为这种序列具有特殊的性质,对她正在开展的研究工作很有帮助。所谓的递增序列是指数值序列a0, a1, a2, …, at-1中对于任意的i (0现有一

2016-09-18 21:36:37 2669

转载 C++中四种类型转换方式

类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转换没有区分这些

2016-08-28 08:57:13 767

转载 C++ explicit构造函数

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”

2016-08-26 16:06:51 816

转载 Char转为int时高位符号扩展的问题

代码示例: static get_utili(constchar*p){int util;…while(isspace((int)*p))//跳过空格++p;util=(int)*p++;…}现象&后果: 当传入的参数p指向的内容为0x9A、0XAB等内容(最高位为1)时,得到的int型变量util的值将会出错,因为char会进行符号扩展,使得0x9A(十进制的154)变成

2016-08-21 21:11:09 1300

转载 大端模式和小端模式详解

在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。一、什

2016-08-20 19:58:46 492

转载 C++--堆和栈详解

内存分配方面:堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样代码 中的delete语句才能正确的释放本内存空间。我们常说的内存泄露,最常见的就是堆泄露(还有资源泄露),它是指程序在

2016-08-18 19:44:05 9965

转载 C++原码、反码、补码详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式

2016-08-18 15:50:20 14473 1

原创 如何将二维数组赋值给vector

vector > a;double b[10][10] = {1,2,3,4,5,6,7,8,9,,,,,,,,,,,,,,,,89,79};将b[10][10]值如何赋给a?一维数组:vector a;int b[5] = {1,2,3,4,5};a.push_back(b);二维数组:如果a的长度给定了, vector > a;b[5][6] =

2016-08-15 12:52:17 8368 2

原创 continue与break的区别

break是结束当前循环,跳出当前的整个循环体。continue是结束当前循环的本次循环,然后继续下一轮循环。eg:使用break:while(x++ < 10){ if(x == 3) { break; } printf("%d\r\n", x);}//结果是输出 1 2 就退出了整个while循环.

2016-08-15 12:38:59 541

原创 ”无法启动此程序,因为计算机中丢失LIBEAY32.DLL“ 问题解决办法

“无法启动此程序,因为计算机中丢失LIBEAY32.DLL”此问题一般是杀毒软件删除被感染的文件,导致相关文件缺失。我主要是电脑卡的时候就关机重启,然后就遇到过几次这样的事。        如何解决呢。网上说的方法有三种,具体见链接。方法一:有网络的话,用360或者腾讯电脑管家等软件,找到相关问题进行系统修复即可。方法二:重新下载一个libeay.dll文件,拷贝到系统中。(1)W

2016-05-22 15:14:24 19617

原创 C++ primer读书笔记 第十章 关联容器

关联容器与顺序容器的本质区别:关联容器通过键(key)存储和读取元素,而顺序容器是通过元素在容器中得位置顺序存储和访问元素。关联容器支持通过键来高效地查找和读取元素。两个基本的关联容器类型是map和set。map的元素以键-值对的形式组织;键用于元素在map中的索引,而值则表示所存储和读取的数据。set仅包含一个键,并有效地支持关于某个键是否存在的查询。multimap支持同一个键

2016-04-26 21:41:52 788

原创 C++ primer 读书笔记 第九章 顺序容器

1、顺序容器:vector:支持快速随机访问deque:双端队列list:支持快速插入/删除2、顺序容器适配器:stack:后进先出(LIFO)栈queue:先进先出(FIFO)队列priority_queue:有优先级队列管理的队列3、所有的容器都是类模板。定义一个容器类型的对象之前必须包含相关头文件#include #include #include

2016-04-26 21:27:00 576

原创 C++ primer 读书笔记 第七章 --函数

1、函数的参数传递形参的初始化与变量的初始化一样。如果形参具有非引用类型,则复制实参的值 实现初始化。函数并没有访问调用所传递的实参本身,因此不会改变实参的值。如果形参为引用类型,则它只是实参的别名,这时候形参改变,对应的引用实参也会改变;如果形参为指针类型,则它可以改变指针指向的值。2、复制实参的局限性不适宜复制实参的情况包括:1)当函数需要修改实参的值时;2)当

2016-04-13 21:54:35 417

原创 C++ primer 第六章 --语句

1、有些编程风格建议总是在if后面使用花括号,这样做可以避免日后修改代码时产生混乱和错误。块语句使用花括号是一个比较好的做法。2、break语句用于结束最近的while、do while、for或者switch语句,并将程序的执行权传递给紧接在被终止语句之后的语句(跳出包含它的最里层的循环,比如是两层for循环最里层的break,跳出内存循环)。3、continue语句导致最近的循环语句的

2016-04-13 18:42:41 338

原创 sizeof详解 -- C++

一、sizeof概念sizeof()是一个操作符(operator),不是函数。它的功能是返回一个对象或者类型名的长度,类型为size_t,单位为字节。size_t是一个依赖编译器的值,定义在头文件stddef.h,一般定义为 typedef unsigned int size_t;二、sizeof有三种语法:(1)sizeof(object);//sizeof(对象);(

2016-04-13 17:48:33 2238

原创 C++ primer 第五章--表达式

(1) >>和(2)为什么建议多使用前自增?因为前置操作需要做的工作更少,只需要加1返回结果就行。而后置操作则需要先保存操作数原来的值,以便返回未加1之前的操作结果。对于int型对象和指针,编译器可以优化掉这项额外工作。但是对于更多的复杂迭代器类型,这种额外的工作可能花费更大的代价。(3)sizeof操作符1、sizeof返回一个对象或者类型名的长度,返回值为size_t,长度单位

2016-04-12 16:55:31 309

原创 C++ primer 第四章--数组和指针

4.1 数组(1)现代C++程序应尽量使用vector和迭代器类型,而避免使用低级的数组和指针。设计良好的程序只有在强调速度是才在类实现的内部使用数组和指针。(2)与vector类型相比,数组的显著缺陷有:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。数组没有获取其容量大小的size操作,也不提供push_back操作在其中自动添加元素。如果需要更改数组的长度,程序员只能创建一

2016-04-12 11:20:24 400

原创 C++ primer 读书笔记--第三章 标准库类型

1、在头文件中,必须总是使用完全限定的标准库名字。头文件中的内容会被预处理器复制到程序中,如果在头文件中放置using声明,就相当于在包含该文件的每个程序中都用了同一using声明。头文件中应该只定义确实必要的东西,建议在头文件中用using std::cout 之类的,不要用using namespace std。2、使用string类型对象,头文件库为3、string类型对象的读取操作

2016-03-28 21:54:33 472

原创 C++ primer读书笔记--第二章 变量和基本类型

1、C++是静态类型语言,在编译时执行类型检查。2、C++最重要的特征是类,程序员可以使用类自定义数据类型。C++的表达能力是通过支持一些允许程序员定义新数据结构的机制来提升的。3、C++基本内置类型:类型含义32编译器最小存储空间64位编译器最小存储空间bool布尔值--char字符型11wcha

2016-03-23 20:57:14 443

原创 C++ primer 读书笔记--第一章 快速入门

读入未知数目的输入直到程序结束,然后求和。#include using namespace std;int main(){ int sum = 0,value; while(cin >> value) sum += value; cout << "sum is:"<< sum << endl; return 0;}怎么判断什么时候输入结束?cin>>value 在

2016-03-23 18:35:23 412

原创 为什么要找互联网公司

我是学通信的研究生,一直在纠结将来是去互联网公司还是去通信公司?毕竟本科和研究生专业都是通信方面的,如果将来就业不是本专业的岂不是很亏?       通信方面现在新的机遇可能就是4G,4G时代的机遇有哪些呢?引用前辈的话如下:         1、手机、平板等终端;         2、基站,运营商设备;         3、终端的4G芯片;         4、4G的算法与协

2015-09-13 15:39:48 682

原创 C++名字空间

当引入一个全局的using指令时(using  namespace std等),就已经为那个文件打开了该名字空间。这对于一个实现文件(.cpp)来说是一个好方法,因为只有该文件编译结束时,using指令才会起作用,它不会影响到任何其他文件。        如果发现一个实现文件中使用太多的using指令而产生名字冲突(多个名字空间重复定义),就要对文件做简单的改变,使用明确的限定(使用的地方用s

2015-08-25 09:15:43 430

原创 内联函数详解--C++

C++中引入内联函数主要是可以解决使用宏带来的问题。        在C中,保持效率的一个方法是使用宏。预处理器直接用宏代码代替宏调用,就没有了参数压栈、生成汇编语言的CALL、返回参数、执行汇编语言的RETURN等开销。但是在C++中使用预处理器存在连个问题:     (1)宏看起来像一个函数调用,但并不总是这样,它隐藏了难以发现的错误(C中也存在);              宏只

2015-08-24 21:34:38 527

转载 b牌棋盘完美覆盖

考虑一个普通的国际象棋棋盘,它被分成8*8(8行8列)的64个正方形。设有形状一样的多米诺骨牌,每张牌恰好覆盖棋盘上相邻的两个方格(即1*2的骨牌)。那么能否把32个这样的1*2骨牌放到棋盘上,使得任何两张牌均不重叠,每张多米诺骨牌覆盖两个方格,并且棋盘上所有的方格都被覆盖住?我们把这样一种排列称为被多米诺骨牌的完美覆盖。这是一个简单的排列问题,人们能够很快构造许多不同的完美覆盖。但是计算不同的完

2015-08-18 16:37:10 2044

原创 const详解--C++

C++常量(关键字const)主要是为了使程序员能够在变和不变之间画一条直线。        const的最初动机是取代预处理器#define来进行值替代。        原因:C语言中预处理器可以不受限制的建立宏并用它来代替值。因为预处理器的值只做些文本替代,它并没有类型检查概念,也没有类型检查功能。所以预处理器的值替代会产生一些微小的问题,这些问题在C++中可以通过使用const值来避

2015-08-18 15:07:40 459

原创 句柄类思想

句柄类,也叫Cheshire Cat(参见《C++编程思想》)。            问题背景是这样的:         1)在极为安全的领域,即使核心实现已经封闭在库中不可见,但是头文件中的变量定义仍然可能会曝露一些内部信息;         2)在设计初期,实现部分固然需要经常变动,连头文件中变量定义也需要经常变动,因此在重编译的时候头文件也需要编译,有时候导致编译时间过长。

2015-08-15 13:58:39 581

原创 C++常见的质数判断算法

质数定义:一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除。        算法1:(定义)判断一个整数n是否为质数,只需用2到n-1之间的每一个整数去除,如果都不能被整除,那么n就是一个质数#include #define MAX 100using namespace std;int main() { int j; for (int i = 2; i <=

2015-08-14 09:53:48 60295 2

原创 C++包含函数指针的复杂定义处理办法

void (*funcPtr)()        最好的处理办法是:从中间开始和向外扩展。“从中间开始”的意思是从变量名开始,这里指的是funcPtr。“向外扩展”的意思是先注意右边最近的项(在这个例子中没有该项,以右括号结束),然后注意左边(用星号表示指针),注意右边(空参数表表示这个函数没有带任何参数),再注意左边(void便是函数没有返回值)。大多数声明都是以右-左-右的方式工作。

2015-08-13 19:59:12 654

原创 C++创建与销毁对象

C++将效率控制作为最重要的问题,为了最大化运行速度,通过将对象放在栈中或者静态存储区域中,存储和生命期可以在编写时确定。         栈是内存中的一个区域,可以直接由微处理器在程序执行期间存放数据。在栈中的数据称为自动变量或者局部变量。         静态存储区域简单来说是内存中的一个固定块,在程序开始执行以前分配。         使用栈或静态存储区,可以快速分配和释放。但是

2015-08-13 19:13:23 4534

转载 C99新特性

C99标准的新特性2010-6-29 先简单介绍下C语言的标准.C语言的发展历史大致上分为三个阶段:Old Style C、C89和C99.Ken Thompson和Dennis Ritchie发明C语言时有很多语法和现在并不一样,但为了向后兼容性(Backward Compatibility), 这些语法仍然在C89和C99中保留下来了.C89是最早的C语言规范,于1989年提出

2015-08-13 16:46:29 666

原创 VS2013批量注释快捷键

eclipse批量注释快捷键:Ctrl + /            批量取消注释快捷键:Ctrl + /VS2013批量注释快捷键:Ctrl + K + C               批量取消注释快捷键: Ctrl + K + U

2015-08-12 19:51:57 4230

原创 C++怎样跳出双层for循环

方法一:用goto-----标准不提倡,破坏结构化程序。        方法二:设置标签(bool值)------当内层for循环满足跳出的条件时,将标签设置为真,然后break,这样就跳出了内层循环;外层for循环对标签进行判断,进而跳出外层for循环。当有更多层for循环时会出现困难,不过有人说如果这种情况出现的时候就要考虑是否自己设计的逻辑出现问题。

2015-08-12 19:20:45 9934

原创 C与C++区别之处

1、int func()C :不确定参数数目,func(void)才表示空参数列表。C++:0个参数。2、func(int a)C :返回类型默认为int型。C++:函数必须有返回值类型。3、

2015-08-12 19:03:40 403

原创 C++易混淆的一点

函数声明:int fun(int length, int width);函数定义:int fun(int length, int width){ }在函数定义中,大括号代替了分号的作用,因为大括号括起了一条或者一组语句,所以就不需要分号了。

2015-08-12 18:21:29 336

原创 C++文件读取

在C语言中打开和处理文件很复杂,并且一般用不上,以至于我看C++的时候直接忽略掉这部分。然而C++语言中的iostream库提供了一种简单的方法来处理文件。打开文件进行读写操作,必须包含,虽然会自动包含,但如果要使用cin、cout,最好还是现实包含。为了读而打开文件,要创建一个ifstream对象,它的用法与cin相同;为了写而打开文件,要创建ofstream对象,它的用法与cout相同

2015-08-12 17:59:58 1051

原创 C++ 编译过程

编译器直接将源代码转化成汇编语言或机器指令。C++编译过程主要有以下几个过程:(1)编译预处理    预处理主要包括三种:1)宏定义命令;2)条件编译命令;3)头文件包含命令。预处理命令以“#”开头。编译程序完成的工作,可以说是对源程序的“替换”工作。经过这个过程,生成一个没有宏定义、没有条件编译、没有特殊符号的输出文件(中间文件)。(2)编译、优化阶段     编译程序的工作

2015-08-11 21:59:57 515

原创 C++成长之路

以前看过《C++编程思想》和《C++ premier》一遍,后来又用c++完成一个项目约1W行代码,再次阅读这两本书,体会更多,虽然还是有些不懂得地方,但是我想理解以后按照自己的思绪记录下来,加深记忆,促进自我学习与提高,后续会持续更新《C++成长之路》栏目。

2015-08-11 21:12:54 677

转载 错误argument of type "char *" is incompatible with parameter of type "LPCWSTR"的解决方法

方法一:方法一只针对新手,在vs2010中修改编码格式:  右键工程——》  选择“Properties”——》  选择“Configuration Properties”——》  再选择“General”——》  最后把“Project Default”下的“Character Set”修改为“Use Multi-Byte

2015-07-30 09:28:01 5164

空空如也

空空如也

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

TA关注的人

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