c/c++
文章平均质量分 78
qin3232521
这个作者很懒,什么都没留下…
展开
-
淘宝2011.9.21校园招聘会笔试题
一、单选题1、我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,能够检测多少瓶液体的成分(C)A、5瓶 B、6瓶 C、31瓶转载 2012-04-17 22:05:44 · 216 阅读 · 0 评论 -
const 详解
使用const提高函数的健壮性 看到const关键字,C++程序员首先想到的可能是const常量.这可不是良好的条件反射.如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮.const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体const是constant的缩写,“恒定不变”的意思.被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性.原创 2012-05-03 11:00:43 · 542 阅读 · 0 评论 -
堆栈,堆栈,堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态原创 2012-05-05 12:30:52 · 393 阅读 · 0 评论 -
C++高效编程忠告
一、#include “filename.h”和#include 的区别#include “filename.h”是指编译器将从当前工作目录上开始查找此文件#include 是指编译器将从标准库目录中开始查找此文件二、头文件的作用加强安全检测通过头文件可能方便地调用库功能,而不必关心其实现方式三、* , &修饰符的位置int *i,j; // better fo原创 2012-05-05 12:47:10 · 894 阅读 · 0 评论 -
关键字:C++ 4种类型转换 cast
1 reinterpret_cast'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。(译注:是指针具体的地址值作为整数值?)这个操作符能够在非相关的类型之间转换。操作结果只是简单的从一个指针到别的指针的值的二进制拷贝。在类型之间指向的内容不做任何类型的检查和转换。如果情况是从一个指针到整型的拷贝,内容的解释是系统相关的,所以原创 2012-04-25 21:30:57 · 1319 阅读 · 0 评论 -
c++面试试题
1. 以下三条输出语句分别输出什么?[C易]char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout原创 2012-05-02 09:41:04 · 964 阅读 · 5 评论 -
处理百万级以上的数据提高查询速度的方法
处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where nu转载 2012-04-21 20:30:40 · 427 阅读 · 0 评论 -
C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这转载 2012-05-10 20:55:47 · 438 阅读 · 1 评论 -
c++面向对象编程必备“良方”
前言:c++面向对象中的繁琐机制,不得不让你在编程中频频“犯病”,找错误,找bug,困扰,是你的病源所在,本人虽不是什么“良医”, 却也算是总结出以下“良方”。药方1 ☞ 必需时刻明白面向对象编程中要扮演的两个角色,一个就是你,类的设计者,一个就是用户,类的使用者,你的设计是针对用户而言的,当然你也可能是身兼两职,同时是设计者又是用户。药方2 ☞ 设计一个类时,将声明放转载 2012-05-16 09:26:23 · 289 阅读 · 0 评论 -
const,typedef与static
const 用途1 const 常量:该数不允许被改变,若改变编译器报错,定义时就要初始化,不然以后就再也没有机会初始化了2 const 函数形参:f(const int a);表示该形参是一个输入形参,在函数里不能改变其值3 const 指针:让指针本身为const 或者指针所指为const 或者两者同时为const4 类的成员函数 const :表示该函数只能对成员变量进行只读原创 2012-06-08 21:55:08 · 620 阅读 · 0 评论 -
const参数,const返回值与const函数
include 2 #include 3 using namespace std;45 class person6 {7 private:8 int id;9 string name;10 public:11 person(int id, string name):id(id), name(name)12 {13原创 2012-06-24 10:05:17 · 3232 阅读 · 0 评论 -
面试算法知多少(转)
看来我真的人老珠黄了,这些日子重新拿起算法书,发现思维能力又再次下了一个台阶,成功回到地下一层。翻看一些题目,觉得毫无思路,再一看附近的笔记,我靠,原来这些东西我原来都曾搞定过的。。。 赶在十一长假结束,整理了一些零星的算法笔记,顺手都分享了,希望对面试有些帮助。不要相信有一夜壮阳的九阳神功,算法这玩意靠得是一点一滴的积累和思维的磨练。一些所谓的方法和技巧,都只是给面试来只强心针喂一口大补丸,主要原创 2012-06-26 20:32:29 · 826 阅读 · 1 评论 -
多态(C++篇)
今天看到一篇文章,讲多态讲得很透彻和简单,全文转载如下:1. 什么是多态多态是C++中的一个重要的基础,可以这样说,不掌握多态就是C++的门个汉。我就给它定一个这样的名字-- “调用’同名函数’却会因上下文不同会有不同的实现的一种机制”。这个名字长是长了点儿,可是比“多态”清楚多了。看这个长的定义,我们可以从中找出多态 的三个重要的部分。一是“相同函数名”,二是“依据上下文”,三是“实转载 2012-04-18 13:21:06 · 407 阅读 · 0 评论 -
C语言面试题(二)
位操作(Bit manipulation)9. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。对这个问题有三种基本的反应1). 不知道如何下手。该被面者从没做过任何嵌入式系统的工作。2). 用bit fields。Bit fields是被扔到C语言死角的东西,它原创 2012-04-18 13:45:45 · 521 阅读 · 0 评论 -
C++多线程(二)
C/C++ Runtime 多线程函数一 简单实例主线程创建2个线程t1和t2,创建时2个线程就被挂起,后来调用ResumeThread恢复2个线程,是其开始执行,调用WaitForSingleObject等待2个线程执行完,然后推出主线程即结束进程。/**//* file Main.cpp * * This program is an adaptation of原创 2012-05-02 20:57:31 · 346 阅读 · 0 评论 -
淘宝2011.9.23校园招聘会面试题
1、操作系统中的同步和异步有什么区别?分别应用在什么场合?答:同步,就是说你的程序在执行某一个操作时一直等待直到操作完成。 最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处理函数所返回的 LRESULT值返回给调用者。异步,就是说程序在执行某一个操作时,只是发出开始的指令;由另外的并行程转载 2012-04-17 22:06:24 · 193 阅读 · 0 评论 -
百度2011.10.16校园招聘会笔试题
一、算法设计1、设rand(s,t)返回[s,t]之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并给出时间复杂度分析。思路:这个使用数学中的极坐标来解决,先调用[s1,t1]随机产生一个数r,归一化后乘以半径,得到R*(r-s1)/(t1-s1),然后在调用[s2,t2]随机产生一个数a,归一化后得到角度:360*(a-s2)/(t2-s2)2、为分析用户行为,系统常需存转载 2012-04-17 21:43:35 · 228 阅读 · 0 评论 -
IT公司笔试面试题系列(一)
C++笔试题1.多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?答案:虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组.而对象的隐藏成员--虚拟函数表指针是在运行期--也就是构造函数被调用时进行初始化的,这是实现多态的关键.2.一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?原创 2012-04-18 13:05:46 · 337 阅读 · 0 评论 -
C语言面试题
预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你原创 2012-04-18 13:45:05 · 228 阅读 · 0 评论 -
2011.10.17百度面试题
1、进程切换需要注意哪些问题?保存处理器PC寄存器的值到被中止进程的私有堆栈; 保存处理器PSW寄存器的值到被中止进程的私有堆栈; 保存处理器SP寄存器的值到被中止进程的进程控制块;保存处理器其他寄存器的值到被中止进程的私有堆栈; 自待运行进程的进程控制块取SP值并存入处理器的寄存器SP; 自待运行进程的私有堆栈恢复处理器各寄存器的值;自待运行进程的私有堆转载 2012-04-17 21:38:38 · 169 阅读 · 0 评论 -
stl容器学习总结
一 迭代器(iterator)迭代器:迭代器是类似指针的对象,STL算法利用它们对存储在容器中的对象序列进行遍历。5种类别:1、输入迭代器 2、输出迭代器 3、前向迭代器 4、双向迭代器 5、随机访问迭代器 常用的迭代器: istream_iterator输入流迭代原创 2012-05-02 09:15:51 · 581 阅读 · 0 评论 -
C++强大的背后
转自:http://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括转载 2012-05-02 09:28:01 · 750 阅读 · 0 评论 -
函数指针
函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢? 如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针 函数指针不能绝对不能指向不同类原创 2012-05-02 09:32:19 · 412 阅读 · 0 评论 -
读写文件精华
一 ASCII 输出:(使用ofstream的open,close和ofstream fout; fout.open("output.txt"); //ofstream fout("output.txt");int num = 150;char name[] = "John Doe";fout fout fout fout.close(); //Here转载 2012-05-02 10:39:57 · 273 阅读 · 0 评论 -
指针高级例题
#include "stdafx.h " #include iostream > using namespace std;// -----------------------------------------------void GetMemory1(char * p) { p = ( ch原创 2012-05-02 20:32:47 · 578 阅读 · 2 评论 -
内存。二重指针,指针的高级使用
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3) 从堆上分配,亦称动态内存分配。转载 2012-05-02 20:37:18 · 449 阅读 · 0 评论 -
C++多线程(一)
WIN 多线程API一 简单实例比较简单的代码,创建10个线程,其中使第4个线程在一创建就挂起,等到其他的线程执行的差不多的时候再使第4个线程恢复执行。#include stdio.h> #include stdlib.h> #include windows.h> #define THREAD_NUM 10DWORD WINAPI PrintThread原创 2012-05-02 20:56:06 · 321 阅读 · 0 评论 -
Windows平台下主要的内存管理
1. Windows平台下主要的内存管理途径申请释放newdeletemallocfreeCoTaskMemAllocCoTaskMemFreeIMalloc::allocIMalloc/freeGlobalAlloc原创 2012-07-09 10:59:19 · 622 阅读 · 0 评论