C/C++
文章平均质量分 59
黑暗的詠歎
这个作者很懒,什么都没留下…
展开
-
const_iterator和const iterator的区别
const_iterator是声明iterator指向的对象是常量,即iterator指向常对象,其迭代器本身可以变;const iterator是声明iterator是常量,其指向的对象可以改变,但其迭代器本身不能变;eg.vector::const_iterator iter1 = vec.begin();*iter = 3; //Error++iter; //Ok原创 2013-02-20 16:14:53 · 689 阅读 · 0 评论 -
零散总结
#define和typedef的用法与区别#define MAX 100typedef string STRING;原创 2014-04-21 21:11:52 · 688 阅读 · 0 评论 -
动态规划之01背包
public class Pack01 { public int [][] pack(int m,int n,int w[],int p[]) { //c[i][v]表示前i件物品恰放入一个重量为m的背包可以获得的最大价值 int c[][]= new int[n+1][m+1]; for(int i = 0;i<n+1;i++) { c[i][0]=0; }原创 2014-04-26 16:13:11 · 627 阅读 · 0 评论 -
C++多个头文件重复定义变量问题
head_file1.h的内容如下:#ifndef _HEAD_FILE1_H#define _HEAD_FILE1_H#define MAX 100#endif/*** _HEAD_FILE1_H*/原创 2014-10-15 09:22:16 · 2391 阅读 · 0 评论 -
typedef常见用法
不管是在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错。用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa,原创 2015-01-12 22:52:38 · 623 阅读 · 0 评论 -
函数调用过程探究
引言如何定义函数、调用函数,是每个程序员学习编程的入门课。调用函数(caller)向被调函数(callee)传入参数,被调函数返回结果,看似简单的过程,其实CPU和系统内核在背后做了很多工作。下面我们通过反汇编工具,来看函数调用的底层实现。 基础知识我们先来看几个概念,这有助于理解后面反汇编的输出结果。栈(stack)栈,相信大家都十分熟悉,push转载 2015-01-12 23:04:53 · 670 阅读 · 0 评论 -
指针数组做函数形参
应用场景从程序设计角度来看,将多个字符串传递给函数处理时,因为传递的是一维数组,形参的定义比较简单。例如,函数strsort()可对多个字符串进行排序,函数头的定义形式如下:void strsort(char *s[],int n)形参char *s[]为字符指针数组,将要处理的指针数组的首地址作为实参传入。形参int n表示要处理的字符串的数量。应用举例C/C+转载 2015-04-08 15:57:41 · 4897 阅读 · 0 评论 -
c语言中return与exit的区别
1,exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而retur转载 2015-04-08 18:32:52 · 655 阅读 · 0 评论 -
回调函数和钩子函数
回调函数钩子函数原创 2015-09-15 07:16:38 · 3232 阅读 · 0 评论 -
extern使用小结
extern原创 2014-06-09 16:31:06 · 1645 阅读 · 0 评论 -
简单的排序和查找算法
冒泡排序(稳定的排序方法)void BubbleSort(int data[], int n){ int i, j, tmp; for (i = 0; i < n - 1; i++)//比较n-1趟 for (j = 0; j < n - i - 1; j++)//每趟比较n-i-1次 { if (data原创 2014-04-21 20:48:17 · 697 阅读 · 0 评论 -
求子数组的最大和
int GetSubArraySum(int* pIntArray, int nCount){ if ((NULL == pIntArray) || (0 >= nCount)) { return 0; } int MaxSum = pIntArray[0]; int TmpSum = pIntArray[0]; for (int i = 1; i < nCount; i+原创 2014-04-21 10:34:33 · 602 阅读 · 0 评论 -
二维数组的若干问题
1、如何用指针表示二维数组?int a[10][10] = {}原创 2014-04-04 11:39:15 · 950 阅读 · 0 评论 -
UML类图基础
类与类之间主要有继承、依赖、关联、聚合、组合几种常用关系。类之间关系的强弱如下:继承 >组合 > 聚合 > 关联 >依赖。概念讲解 依赖依赖是类之间一种临时的使用关系。class A的成员函数中使用了class B,但class A的成员变量中没有class B的指针,class B在 A的函数中一般作为局部变量、函数参数出现。表现形式:void A原创 2013-12-12 17:43:13 · 772 阅读 · 0 评论 -
stddef.h与cstddef
#includeC标准库的头文件,定义了一些标准宏及类型。宏:typedef NULL null;类型:typedef size_t unsigned int; --用来表示sizeof操作符的结果类型typedef ptrdiff_t int; --用来表示指针相减的结果类型wchar_t ; --用来表示宽字符类型,详见 http://baike.baidu原创 2014-01-03 10:51:53 · 12963 阅读 · 0 评论 -
语言编程需要注意的64位和32机器的区别
一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:16位平台char 1个字节8位short 2个字节16位int 2个字节16位long 4个字节32位指针 2个字节32位平台转载 2014-01-03 19:21:50 · 751 阅读 · 0 评论 -
#if、#ifdef、#if defined之间的区别
#if的使用说明#if的后面接的是表达式#if (MAX==10)||(MAX==20) code...#endif它的作用是:如果(MAX==10)||(MAX==20)成立,那么编译器就会把其中的#if 与 #endif之间的代码编译进去(注意:是编译进去,不是执行!!)#if defined的使用#if后面接的是一个宏。#if defined (x)转载 2014-01-23 18:59:11 · 774 阅读 · 0 评论 -
DLL头文件的格式和应用
1、DLL的起源 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件中相比更有利于代码的重用。但随着Windows这样的多任务环境的出现,函数库的方法显得过于累赘。如果为了完成屏幕转载 2014-01-24 10:39:39 · 2391 阅读 · 0 评论 -
C++ 程序员必读书目清单
本文总结了一个C++优秀书籍清单,希望能够为你带来一定的帮助。这些书大多数都有中文版,并且可以很容易在网上找到。 阶段 1 《Essential C++》 这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目转载 2014-01-17 09:34:29 · 584 阅读 · 0 评论 -
C运行库
任何一个C程序,它的背后都有一套庞大的代码来进行支撑,以使得该程序能够正常运行。这套代码至少包括入口函数,及其所依赖的函数所构成的函数集合。当然,它还理应包括各种标准库函数的实现。这样的一个代码集合称之为运行库(Runtime Library)。而C语言的运行库,即被称为C运行库(CRT)。如果拥有Visual Studio,可以在VC/crt/src里找到一份C语言运行库的源代码。然而,转载 2014-01-16 17:44:51 · 1989 阅读 · 0 评论 -
Linux操作系统下的多线程编程详细解析----条件变量
1.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的转载 2014-02-11 14:28:57 · 618 阅读 · 0 评论 -
浅谈基本数据类型的长度
【int】 ① C/C++规定int字长和机器字长相同;(机器字长指主板上数据总线字长及CPU字长,当前一般为64bit)【只是定义】 ② gcc/g++可使用-m 32或-m 64来指定编译32bit还是64bit应用程序;如果没有指定,则根据操作系统字长来定义int字长;【实际实现】备注:与安装的gcc/g++是32bit还是64bit无关,无论安装32bit还是64bit的g原创 2014-01-03 19:13:25 · 1336 阅读 · 0 评论