c++学习
文章平均质量分 80
daisyZH
微博:http://weibo.com/daisyzhuan
展开
-
C/C++之extern
转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连转载 2012-12-25 14:16:32 · 259 阅读 · 0 评论 -
使用 SCons 轻松建造程序
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-scons/简介: 在软件项目开发过程中,make 工具通常被用来建造程序。make 工具通过一个被称为 Makefile 的配置文件可以自动的检测文件之间的依赖关系,这对于建造复杂的项目非常有帮助,然而,编写 Makefile 本身却不是一件容易的事情。SCons 是一个用 Python转载 2013-02-25 13:55:54 · 428 阅读 · 0 评论 -
计算C++程序运行时间总结
转自:http://developer.51cto.com/art/201001/180893.htmC++程序运行时间作为一个高效的.NET程序语言。其混合了函数语言和物件导向程序编制语言,并且完美的适用于编程、算法、技术和探索性开发,因此可以在使用的过程当中感受到趣味性和吸引力。AD:2013大数据全球技术峰会低价抢票中我现在用C++语言写了一段程序,想计算这段程序运行的准转载 2013-02-26 10:47:13 · 399 阅读 · 0 评论 -
C++全局变量的声明和定义
转自:http://qiusuoge.com/8839.html(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作: 第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件; 第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。 那么,错误可能在两个地方产生: 一个,编译时的错转载 2013-03-18 21:59:15 · 455 阅读 · 0 评论 -
c++静态库与动态库的区别
一,概念 1)静态链接库就是你使用的.lib文件,库中得代码最后需要连接到你的可执行文件中去,所以静态连接的可执行文件一般比较大一些。 使用方法 1> 格式如:#pragma comment(lib,"XXX.lib") 2> 针对开发环境:转载 2013-03-19 18:57:42 · 843 阅读 · 1 评论 -
gcc -I -L -l区别
我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时:-I /home/hello/incl转载 2013-03-19 18:58:59 · 489 阅读 · 0 评论 -
C/C++语法知识:typedef struct 用法详解
第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你转载 2013-03-25 20:27:07 · 517 阅读 · 0 评论 -
stringstream用法
分为istream和ostringstream.1 std::string name("zeta");2 int age = 27;3 4 ostringstream os;5 os "name:""""age:"6 cout输出:name:zeta age:27 1 std::string na转载 2013-03-27 13:22:25 · 888 阅读 · 0 评论 -
sprintf用法
sprintf字串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf 误用导致的问题虽然严重,却很容易找出,无非就是那么几种情况,通常用眼睛再把出错的代码多看几眼就看出来了。目录函数简介参数说明及应用举例转载 2013-03-27 13:24:04 · 460 阅读 · 0 评论 -
C++中将string类型转换为int, float, double类型
C++中将string类型转换为int, float, double类型 主要通过以下几种方式:# 方法一: 使用stringstreamstringstream在int或float类型转换为string类型的方法中已经介绍过, 这里也能用作将string类型转换为常用的数值类型。Demo:[cpp] view plaincopy转载 2013-05-29 16:20:14 · 1727 阅读 · 0 评论 -
c++之ctype.h
ctype.h里的函数概况1 字符测试函数1> 函数原型均为int isxxxx(int)2> 参数为int, 任何实参均被提升成整型3> 只能正确处理处于[0, 127]之间的值2 字符映射函数1> 函数原型为int toxxxx(int)2> 对参数进行检测, 若符合范围则转换, 否则不变int tolower(int); 'A'转载 2013-05-29 19:54:27 · 1409 阅读 · 0 评论 -
搜狗笔试题
转自:http://www.cnblogs.com/xulb597/archive/2012/05/24/2516682.html一个长度为n的数组a[0],a[1],...,a[n-1]。现在更新数组的名个元素,即a[0]变为a[1]到a[n-1]的积a[1]变为a[0]和a[2]到a[n-1]的积,...,a[n-1]为a[0]到a[n-2]的积。程序要求:要求具有线性复杂转载 2013-06-04 16:55:09 · 736 阅读 · 0 评论 -
一些常见的概率生成器的题目
转自:http://blog.163.com/kevinlee_2010/blog/static/16982082020120792429856/百度的一个面试题目:.已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器, 使得它构造0和1的概率均为1/2;构造一个发生器,使得它构造1、2、3的概率均为1/3;…, 构造一个发生器,使得它构造1、转载 2013-06-05 16:19:18 · 1263 阅读 · 0 评论 -
c++之类型转换
转自:http://blog.sina.com.cn/s/blog_4a84e45b0100f57m.html关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dyn转载 2013-06-26 10:40:23 · 421 阅读 · 0 评论 -
c++之类的构造函数
转自:http://ticktick.blog.51cto.com/823160/194307 c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。转载 2013-06-26 10:41:28 · 523 阅读 · 0 评论 -
哈希表的实现
转自:http://blog.csdn.net/htyurencaotang/article/details/7881399相关定义:根据散列函数H(key)和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象” 作为记录在表中的存储位置,这种表便称为散列表(或称哈希表),这一映象过程称为散列造表或散列,所得的存储位置称散列地址。构造哈转载 2013-02-21 20:40:50 · 304 阅读 · 0 评论 -
C++之Queue
转自:http://hi.baidu.com/nicker2010/item/a53293f1810ee8cea935a2eb本文介绍STL Queue. Queue(也称FIFO,即先进先出)的声明如下: template > class queue; 第一个template代表元素类型 第二个template代表stack内部存放元素所用的转载 2013-02-21 20:32:02 · 515 阅读 · 0 评论 -
c++之volatile
volatile被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.比如如下程序: XBYTE[2]=0x55;原创 2012-12-25 10:16:01 · 333 阅读 · 0 评论 -
D_REENTRANT宏
-D_REENTRANT宏在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。在一个线程准备获取刚才的错误代码时,该变量很容易被另一个线程中的函数调用所改变。类似的问题还存在于fputs之类的函数中,这些函数通常用一个单独的全局性区域来缓存输出数据。为解决这个问题,需要使用可重入的例程。可重入代码可以被多次调用而仍然工作正常。编写的多线程程序,通过定义宏_REENTRA转载 2012-12-25 14:19:06 · 420 阅读 · 0 评论 -
C++中struct和class的区别
转载:http://www.cnblogs.com/york-hust/archive/2012/05/29/2524658.html一、 C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!!转载 2012-12-25 10:41:19 · 308 阅读 · 0 评论 -
c++面向对象编程之继承
今天看了继承这一模块,有点迷迷糊糊,赶快记下来,梳理一下。c++的类之间有三种继承关系,public,private,protected。对于虚继承,下面也会说明。例如:class B继承class A如果B是public继承,则B从A中继承的成员保持着A中的访问权限如果B是private继承,则B从A中继承的成员(public,protected,private)全变为pri原创 2012-12-19 18:02:10 · 376 阅读 · 0 评论 -
C++静态成员函数小结(转)
类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时转载 2012-12-19 15:30:28 · 380 阅读 · 0 评论 -
void及void指针含义的深刻解析
转自:http://blog.csdn.net/yming0221/article/details/6249151!--@page { margin: 0.79in }P { margin-bottom: 0.08in }-->void的含义void即“无类型”,void*则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的转载 2012-12-19 10:45:54 · 339 阅读 · 0 评论 -
Boost库的安装使用(Ubuntu)
转自:http://blog.chinaunix.net/uid-1827018-id-3390066.html基本上C++的一本书快看完了,Boost库的东西也了解了很多,还是很想敲敲键盘,顺便使用下Boost库,据说Boost库还没有纳入C++标准,不过应该很快了。里面确实很多东西让你爽暴!下面来自网友的安装方法,windows下其实比在linux下复杂多了。点击(此处)折转载 2013-01-08 14:23:56 · 585 阅读 · 0 评论 -
Ubuntu编译安装boost并在eclipse C/C++中使用
转自:http://blog.csdn.net/stanfordzhang/article/details/6330272http://www.cppblog.com/wfcadd/archive/2011/04/06/143513.htmlhttp://www.cppblog.com/mymsdn/archive/2010/03/30/install-boost-under-bo转载 2013-02-20 14:48:37 · 404 阅读 · 0 评论 -
C++ STL学习之三:容器deque深入学习
转自:http://www.2cto.com/kf/201204/126761.htmlC++ STL容器deque和vector很类似,也是采用动态数组来管理元素。使用deque之前需包含头文件:#include 它是定义在命名空间std内的一个class template:templateclass _Ax = allocator >class deq转载 2013-02-21 20:05:02 · 550 阅读 · 0 评论 -
C++ STL list函数详解
转自:http://blog.sina.com.cn/s/blog_65b1f1ed010124xz.htmlC++ list函数详解一、构造、析构函数、=运算符1、功能:声明list容器。4种方式 listfirst; // empty list of ints list second(4,100);转载 2013-02-21 20:06:33 · 555 阅读 · 0 评论 -
C++之Stack
转自:http://hi.baidu.com/nicker2010/item/c25721e05f5c8ffb2b09a4ebSTL包含一些为满足特殊需求而设计的容器,他们提供简单而清晰的接口: 1.Stack 2.Queue 3.Priority Queue 4.bitset本文介绍Stack.Stack(也称LIFO,即后进先出)的声转载 2013-02-21 20:33:26 · 372 阅读 · 0 评论 -
哈希排序
转自:http://df22b.blog.163.com/blog/static/2488576520119110577610/哈希排序常在海量数据中查找数据非常有用。 先看一道题:搜索引擎会通过日志文件将用户每次检索使用的所有记录全部记录下来,每个查询串的长度是1-255个字节。假设现在有1000万个记录(因为有重复的,所以实际上只有大概300万种左右),一个查询串的查询次数转载 2013-02-21 20:38:28 · 2730 阅读 · 0 评论 -
哈希表的应用(C++实现)
转自:http://blog.csdn.net/htyurencaotang/article/details/7881427问题描述:设计哈希表实现电话号码查询系统,实现下列功能:(1) 假定每个记录有下列数据项:电话号码、用户名、地址。(2) 一是从数据文件old.txt(自己现行建好)中读入各项记录,二是由系统随机产生各记录,并且把记录保存到new.txt文件中以及显示到屏幕上转载 2013-02-21 20:39:43 · 1831 阅读 · 0 评论 -
C++ Primer中关于list和vector的比较
转自:http://blog.sina.com.cn/s/blog_4ae8f77f0100hi0n.htmlvector 表示一段连续的内存区域,每个元素被顺序存储在这段内存中。对vector 的随机访问(比如先访问元素5 然后访问15 然后再访问7 等等)效率很高,因为每次访问离vector起始处的位移都是固定的。但是,在任意位置,而不是在vector 末尾插人元素,则效率很低,因为它转载 2013-02-21 20:20:42 · 524 阅读 · 0 评论 -
海量数据处理系列----C++中Bitmap算法的实现
bitmap是一个十分有用的结构。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码扩展:bloom fi转载 2013-11-08 13:38:56 · 1008 阅读 · 4 评论