手机版思维简图 在华为p7手机怎么样中创建之后怎么保存???

& 教育阅读 (6037)
思维简图介绍
思维简图是一个轻量的思维导图管理工具,只要会录入'!'就能创建和管理你的思维导图。大大方便你在手机上使用思维导图整理自己的想法。
v2.0.3更新:
1、为放射图增加节点图形自选功能,在“简图设置”中可将简图的节点设为篮球、咖啡杯、猫头鹰、草莓等等有趣的图形;
2、在“简图设置”中增加清除本地数据功能,方便一键删除本机上所有简图(慎用);
3、增加根据节点文字多少自动计算放射图中连线长度的功能,避免文字较少的简图中连线过长,查看不方便;
4、查看放射图时,增加双击缩放功能,连续双击图形,三个缩放比例轮流切换。
已通过安全扫描
360 手机卫士 扫描结果:通过
腾讯手机管家 扫描结果:通过
LBE安全大师 扫描结果:通过
检查无病毒、木马等恶意程序,请放心安装。
同类安卓应用下载排行
1223次评分
同类安卓应用上升排行
思维简图截图
孙子兵法男人必看经典书籍相关推荐CString strS
strScale.Format(_T(&1:%d&),m_pBlock-&GetBlkScale());
int iIndex=strTitle.ReverseFind(_T('|'));
if(iIndex& -1)
CString str1,str2;
str1=strTitle.Mid(0,iIndex);
str1 = L&1/...
8月2日消息,2014年以来360公司非常低调,360董事长周鸿祎也一改往日高调作风,变得低调务实起来。如今的周鸿祎开始做智能硬件表现出浓厚的兴趣。
实际上,360很早就涉足硬件,曾经一度做360特供机与小米进行PK,不过,并未取得理想效果。周鸿祎就谈及做特供机的感受,称互联网公司很多人都是血气方刚的做硬件。
“我曾经也是拉过很多不靠谱的小伙伴一块做手机,最后都是以失败告终,在硬件我们...
我是一名90后,现在是一家移动互联网创业公司里的一名员工。如果回到2013年的这个时候我的名片上印着是“为你爱”创始人兼CEO。现在的我却背负了一身债务,每月为了还债整夜辗转反侧。
提到90后创业者大多数人一定会想到,大象创始人刘克楠,脸萌创始人郭列,Segmentfault创始人高阳,以及泡否创始人马佳佳。至于像我们这样的创业者who care?说实话在国内的创业圈子里,失败者是没有发言权...
CWinApp::InitApplication
CMyWinApp::InitInstance
CMyFrameWnd::CMyFrameWnd
CFrameWnd::Create
CWnd::CreateEx
CFrameWnd::PreCreateWindow
CWinApp::Run
CWinThread::Run...
十二年前,湖南小痞子唐岩只身闯北京。十二年后,他成了移动互联网新贵、创业明星、最火爆的社交APP陌陌创始人。他变得富有,也变得孤独。成功让他自由,也拘束了他。CEO唐岩说,其实,他最想做的是个古惑仔。
唐岩现在还在青春期
陌陌CEO唐岩上一次打架是在2013年底。凌晨一两点钟,天特冷,他裹着件羽绒服,哆哆嗦嗦在世贸天阶门口打车。好不容易等到一辆,斜刺里杀过来一个男人抢先开了车门。
5月20日消息,小米董事长雷军在创业邦天使投资人大会上表示,最崇拜的创业公司是阿里巴巴,而阿里巴巴能成功的原因主要为三点:背后有一个巨大的市场、有绝对靠谱的合伙人、有一笔永远花不完的钱,而小米最初创业时的合伙人,都是靠自己用“无赖”做法挖来的。
创业成功的前提是拥有巨大市场
雷军表示,每一家创业公司成功的第一个前提就是背后拥有一个巨大的市场,只有拥有强烈的市场需求,创业公司才有机会找到...
来源:《财经》杂志
2014年初,周鸿祎闭关三个月。在这三个月内,他思考了一些很本质很哲学的问题:360是什么?360要成为一家怎样的公司?
结果,他的选择既不像百度、阿里,也不像腾讯、小米,再次出人意料。
多数互联网企业家都是横向思维,而周鸿祎是纵向思维。对于BAT而言,他们做社交、做电商、做搜索,切入各个细分领域,横向扩展自己的业务。而周鸿祎则选择把安全这道壁垒建的越来越高、...
做过警察,当过兵,还立了个二等功。后闯深圳,做过保洁发过传单,偶然的机会做起电脑培训老师,工资从一两千元涨到2万多。真正的第一桶金来自在西安做电脑培训学校。之后涉足游戏领域,当过站长,做过《传奇》私服,QQ助手,还做过《魔兽争霸》RPG地图。2012年,游久网与周鸿祎的奇虎360合资,一年半后,又选择单飞,脱离360体系,专心做游戏媒体和游戏发行商。
跟刘亮相识多年的巨人网络总裁纪学锋,用三...
工作也挺久了,不断的学习这编程知识,发现过一段时间后又失去目标,不断的思考,我们是该把精力放在学习技术上还是把直接把才华和精力放在赚钱这个目标上?
发现其实两者并不直接冲突,把控自己的财富观,保持对机会的嗅觉,顺势而为。
我工作那会,有位理财很厉害的朋友,在北京2008年前就买入了7、8套房,以至于到了2008年之后,房价猛涨的情况下,他把其中几套房子租出去,每月收到的房租竟然几倍于他...
5月11日,由IDG资本与创业邦携手举办的IDG校园创业大赛武汉大学宣讲会圆满落幕。本次校园创业大赛面对所有在校本科及研究生,旨在挖掘校园内的天才开发者和技术极客。中华万年历创始人秦涛与大家分享了自己作为产品经理的心路历程,讲述了他是如何将一个大家看不上的产品从零做到一个亿的经历。
以下是秦涛的演讲实录,已经本人审阅:
感谢常亮的邀请。我是2010年时开始创业的,当时做了很多东...
从近两年开始,整个互联网世界以硅谷为起点,刮起了一道&小社交&风潮。私密社交应用PATH用户数超过2000万,估值10亿美金;Facebook花费10亿美元收购照片社交应用I“阅后即焚”应用Snapchat拒绝了Facebook和Google高达30亿美金的收购邀约;知识问答社区Qura估值9亿美金......
【小社交】是一种style,而陌生人社交是当今移动互联网社交中...
手游创业公司该拿谁的钱?该如何花钱?100个团队可能有100个答案。
  本文来自《刀塔传奇》研发商上海莉莉丝CEO王信文的博文:《那些和钱有关的事儿》,这篇博文写于2013年年底,那个时候《刀塔传奇》还未正式发布,而莉莉丝刚刚在创业的路上走了半年有余,在花钱这事上,莉莉丝没少走弯路,这些经验对很多正在创业的朋友值得借鉴。
  那些和钱有关的事儿
  自今年3...
他是一个90前的码农,放弃了城市的灯红酒绿,回乡种田,仅通过微博一种途径,3个月卖出了20万斤芋头,还获得了第一笔投资!
“芋头哥”,真名周华斌,一个放弃华为5位数工资,决心转型回家种田,做新媒体电商的码农。
他的经历也颇为曲折,从五金店学徒到迪吧马仔,从工地农民工到富士康流水线工人,从华为5位数工资再到做电商的农民。作为一个90前的码农,他放弃了城市的灯红酒绿,回乡种田,仅通过微博一...
注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统的第三方软件还不够完善,如果初级用户使用不当,会出现严重的后果,所以提供这篇文章,希望大家多多学习,本人能力有限,还希望大家多提宝贵意见:
一、注册表的由来
PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x...
进程的权限继承自创建进程用户和用户所属的用户组。用户有专用数据结构来表示权限—访问令牌(Access Token)。访问令牌包括两个部分:一个是令牌所表示的用户,包括用户标识符(SID),用户所属的用户组等;另一部分是“权限”(Privilege)。
在进程访问安全对象时,会用到SID。每个安全对象都有访问控制列表(ACL),ACL说明了哪些用户( SID)能访问本对象,哪些不能,以及能进行哪种...
在C语言的库函数中,floor函数的语法如下:
double floor( double arg );
功能: 函数返回参数不大于arg的最大整数。例如,
y = floor( x );
y的值为6.0.
与floor函数对应的是ceil函数,即上取整函数。
有趣的是,floor在英文中是地板的意思,而ceil是天花板的意思,很形象地描述了下...
1.stable_sort 和 sort的区别在于 前者作排序可以使原来的&相同&的值在序列中的相对位置不变
如 1 4 6 7 4' (4 和 4'值相等,加上' 表示是2个元素)
那么stable_sort能保证排序完 4 仍然在4' 前 也就是输出1 4 4' 6 7;但是sort 没有这个功能,算法不能保证这一点
2.在标准算法中的一部分算法 如果这个算法默认使用的是
我们都知道,我们在使用电脑时。在“开始”→“运行”中输入“regedit”并单击“确定”按钮后,可以打开“注册表编辑器”对话框,此时可以看见在左边的窗口中显示了注册表的所有主键。对于Windows
/XP 来说只有五个主键。新手要想看的懂注册表就必须了解这五个主键的指向是什么。下面我们就来一起学习下注册表主键的具体含义。
  1.HKEY_CLASSES_ROOT
所谓同步I/O是指在调用ReadFile、WriteFile等函数进行输入输出操作时,系统完成了输入输出ReedFile、WriteFile才返回。在操作系统进行I/O操作的过程上,用户态线程不能执行,因此在同步I/O时,如果需要在I/0时进行其他操作就只能再开启线程。
而异步I/O是在调用ReadFile、WriteFile等函数后,函数立即返回,线程可以进行其他操作。
剩下的I/O...
1 注册表的作用及组织形式
Windows系统使用注册表来存储系统和应用程序配置数据。很多系统和应用程序重要的配置的信息都存储在注册表中。注册表是一种以树型结构组织的数据库。树的每一个节点称
作键(key),每个节点可以包含若干子键,键可以存储数据,存储的数据称作键值。一个键无论其是否有子键,都可以有键值。一个键可以有很多个键值,每个键值都有一个名字,包含若干数据,所包含的数据类型可以有很多种...
Win32DLL使用的是Win32的API实现的,只能导出函数,能被各种应用程序调用,适用范围最广。
MFC常规DLL是适用MFC创建的,就像MFC程序跟Win32程序的关系一样,MFC常规DLL和Win32DLL的关系也是如此。它使用MFC的机制,只能导出标准C函数。如此,它便可以被大部分Win32程序调用。
MFC拓展DLL也也使用的是MFC机制创建的,相比于MFC常规DLL,拓展...
进程的虚拟内存空间分为两个部分,低2GB(或3GB_)由应用程序使用,高2GB(或1GB)
由系统内核程序使用。
系统内核的内存空间中包括驱动程序,系统内核可执行程序、用于内存管理的数据结构(页目录、页表等),用于进程管理、线程调度的数据结构、各种中断处理程序,系统缓存等。
应用程序可使用的低地址空间中包括了应用程序的代码、数据(全局变量等)、系统和用户DLL的代码、各线程的栈、堆等。
绝对路径:是从盘符开始的路径,形如
C:\windows\system32\cmd.exe
相对路径:是从当前路径开始的路径,假如当前路径为C:\windows
要描述上述路径,只需输入
system32\cmd.exe
实际上,严格的相对路径写法应为
.\system32\cmd.exe
其中,.表示当前路径,在通常情况下可以省略,只有在特殊的情况下不能省略。
附加依赖项 是指输入项,如某个.LIB文件。
附加库目录 是你用 #pragma comment(lib,&a.lib&)的时候;此时就搜索a.lib的路径列表就包含这个路径。
若是要链接一个lib,直接把它添加到附加依赖项 和 把它所在的目录添加到附加库目录里面有什么区别?
添加到附加依赖项 :你的LIB文件被真正包含进来了。
把它所在的目录添加到附加库目录里...
1.cl.exe文件是Visual C\C++的编译器,它将程序源代码文件编译为obj文件。
2.rc.exe文件是资源编译器。工程项目中的.rc文件中包含了对程序中所使用资源(菜单、图标等)的描述。rc.exe将.rc格式的文件编译为.res文件,供链接器链接到可执行文件中。
3.link.exe是Windows平台的链接器,它将cl.exe编译生成的obj文件,资源编译器生成的.r...
//模板类complex的标准头文件
//模板类valarray的标准头文件
//数学头文件
//模板类输入输出流标准头文件
1.         进程是执行文件的运行时形态。包括两部分:内核数据(对应内核对象)、地址空间(包括执行文件代码和栈堆等动态内存)。
2.         把VC的“系统-子系统”值删除掉,即不指定控制台或GUI,则编译器会根据代码中存在main或者WinMain来自动选择子系统(这里不谈Unicode了),很方便。
3.         启动程序:根据子系统执行mainCRTStartup...
1.         简单区分内核对象和其他对象的方法:创建需要安全信息的多半是内核对象。
2.         每个进程有一个内核对象表,表的每一项是一个简单结构,包括真实内核对象地址和访问权限等。用户代码持有的内核对象句柄其实是对象表中对应项的索引。因此如果CloseHandle关闭一个对象后没有清空变量,且在对象表的同样位置恰好又创建了一个新的内核对象,对之前没清空的无效变量的访问会造成b...
GEOMETRIC_BEGIN
* 函数功能:判断字符串是否一个合法的数字(包括科学记数法形式) \n
* 输入参数:const CString &numStr, int* pStatus = NULL \n
* 输出参数:int* pStatu
* 返 回 值:int型变量 0,表示是一个数字;非0 为出错位置 ;\n
GEOMETRIC...
推荐的字符和字符串处理方式
开始将文本字符串想象为字符的数组,而不是 char 或字节的数组;用通用数据类型(如 TCHAR/PTSTR )来表示文本字符和字符串;用明确的数据类型(如 BYTE 和 PBYTE )来表示字节,字节指针和数据缓冲区;用 TEXT 或 _T 宏来表示字面量字符和字符串,但为了保持一致性和更好的可读性,请避免两者混用;执行全局替换(例如用 PTSTR 替换 PST...
#pragma once
_MB_DATABASE_BEGIN
class MB_DATABASE_EXT CBeamSection:public CSection
CBeamSection();
CBeamSection(const CBeamSection* pBeamSection);
virtual ~CBeamSection(void);...
#pragma once
#include &GeometricMacro.h&
#include &GeometricEnum.h&
#include &McGePoint2d.h&
_GEOMETRIC_BEGIN
inline bool clearvct(std::vector& vctVal)
for(std::vector::iterator p=vctVa...
#pragma once
#ifdef MHBQ
#define MITC_HBQ_EXT __declspec(dllexport)
#define MITC_HBQ_EXT __declspec(dllimport)
#define _MITC_HBQ_BEGIN
namespace MHbq {
#define _MITC_HB...
FormatMessage是一个Windows
API函数。它的功能就是将GetLastError函数得到的错误信息(这个错误信息是数字代号)转化成字符串信息的函数。
DWORD WINAPI FormatMessage (
DWORD dwFlags, // source and processing options...
1.把每个菜单项对应的图形都抽象出来, 抽象出一个图形基类, 根据不同的变化派生出子类(如矩形、椭圆)
2.在Doc中用一个对象管理链表管理图形对象,当图形需要重绘或序列化存储时,通过遍历链表对象即可
3. 每个类的职责应该清晰,视图类不应该含有图形类的数据,它应该只用来处理消息响应和他职责范围内的东西,这样加强内聚...
王珅,一个曾在华为、赛门铁克、摩托罗拉工作近10年的程序员,进入旧书行业,单枪匹马,年交易额过千万元。
  我喜欢问新结识的朋友一个问题:如果给你两个亿,你会用来干什么?听到问题,所有人无一例外,都会陷入长时间的沉思。他们的回答,将直接反映各自的生存现状以及对于生活远景的殷切展望。
  如果遇到王珅,他会这样简明扼要地回答:“我要用这些钱,做更大一点的生意。”
  你瞧,世界是公...
IBridgeSteel*
_ASSERTE_RT(steel);
vector steelV
std::map & m_mapSteelV
std::map &::iterator p= m_mapSteelVct.find(steel-&GetSteelType());//寻找索引BridgeSteelType
if(p!=m_mapSteelVct.end())/...
写在前面:什么样的工作才真正有意义?你是否认为现在做的工作无比乏味?对于上述两个问题,也许你答不出第一个,但对于第二个问题,很多人的答案也许是肯定的。但看似无意义、乏味的工作是否真的乏善可陈?在看完下面这篇周鸿祎的对话记录前,请先别着急回答。
    我经常收到年轻同事的邮件,向我吐槽说不喜欢自己的工作,觉得正在做的工作没有意义。这个我挺能理解的,刚毕业的学生都会这么想。你们选择工作的时候,肯定...
我的软件开发生涯开始于大约15年以前。
% V: {8 h6 f& N
但是直到最近5年,我才真正地看到它的提高。
下面这些事情,我希望在进入软件开发领域时我已经知道了。如果我早点知道这些事儿,我将会变得更加成功。.
w- [3 A6 L) l! u
  
软件开发中没有“正确的方式“  f5
j5 P7 i- P
在我开发生涯的早期,我在学习和争论上浪费了大量的时...
什么时候需要分解临时变量?
你的程序有某个临时变量赋值超过一次,但它既不是循环变量,也不被用于收集计算结果,就需要分解临时变量!
怎么分解?
针对每个赋值,创建一个独立、对应的临时变量。
代码示例:...
1.重复代码
2.过长的函数
3.过大的类
4.过长的参数列
5.发散式变化的类(即一个类包含多种变化,解决的方法是:拆分类)
6.散弹式修改(即一种变化引起多个类的修改,解决的方法是:把所有需要修改的代码放进同一个类)
7.函数在其他类的使用高于在自己类的使用(解决的方法是:判断哪个类拥有最多被此函数使用的数据,然后就把这个函数和那个数据摆在一起)
8.switch语句(以多态的形...
3月18日,阿里巴巴董事局主席马云在北京大学百年讲堂举行了一场公开演讲。撇开演讲中云计算、DT(数据科技)这些看上去高大上的外在形式,马云试图强调的核心内涵只有一个—年轻人不要整天抱怨这不对、那不对,不要每天混日子,每天炫耀自己的技能没有用,与其抱怨,不如把创业变成现实—你一个人干不了,就把比你更懂的人请来一起干;如果你干不了,就跟着那个比你懂的人干。
不要以为马云这话就只是讲给北大学子听的...
创业就是要改变现状
每个人都应该有创业的心态,创业代表什么?代表你要改变,你要改变自己的现状,不满足于眼前庸庸碌碌。
在人生不同阶段,你都应该怀着创业的心态,这样你就可以做创业的事情。比如说最早期,你刚毕业不可能创业,说大学生创业绝对忽悠人,不知道有多少人想解决大学生创业问题,但是创业不是你摆地摊就叫创业了,在校园里卖卖袜子就叫创业了。我觉得你刚毕业没有任何人际关系,对社会没...
来北京已经一年了,总感觉时间不够用,几乎所有的时间都用在工作上和生活的琐事上,并没有对时间进行充分的利用,自己也曾指定过很多计划,但总因为很多客观原因没有顺利执行。
所以干脆就不制定计划,只给出一个大概的时间,然后把变化封装起来,只要心中有明确的目标,就可以使一个时间段内的时间“高内聚”,时间段与时间段之间“低耦合”。
仅供参考:
睡觉是必须要花时间的,晚...
项目评审总结:
1.找出高端bug,即特别难的bug,去做细化!
2.找出特别细节bug,以彰显程序的细节处理度和精确性!
3.应该抱着产品已经做得很好,bug随你挑的心态去评述,而不是想着评审快点结束的心态!
4.自己先提出和发现所有bug,让别人无处可提!...
1.代码块越小,代码的功能就越容易管理,代码的处理和移动也就越轻松
2.任何不会被修改的变量都可以被当成参数传人新的函数,至于会被修改的变量就需格外小心,如果只有一个变量会被修改,那么可以把它当做返回值。
3.重构技术就是以微小步伐修改程序,如果你发现错误,很容易便可发现他。
4.好的代码应该清楚的表达自己的功能,变量名称是代码清晰的关键。
5.绝大多数情况下,函数应该放在它所使用的数据的...
CString GetFormatStr(double dNumber,int maxPrecision, BOOL bZeroClear)
CString strF
if(maxPrecision 6)
maxPrecision = 6;
建立一个用于保存反馈数据的缓冲区:
glFeedbackBuffer (1024, GL_3D_COLOR, feedBuffer);
void glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
//buffer是一个数组指针,指向包含反馈数据的数组。size是这个数组可以存储的值的最大数量
指定用于返回点击选择数据的数组:
#define BUFSIZE 512
GLuint selectBuf[BUFSIZE];
glSelectBuffer (BUFSIZE, selectBuf);
void glSelectBuffer (GLsizei size, GLuint *buffer);
//buffer参数是一个无符号整数类型的数组指针。它所指向的数组...
创建一个NURBS对象:
GLUnurbs* gluNewNurbsRenderer (void);
//创建一个NURBS对象nobj,并返回一个指向这个新对象的指针销毁NURBS对象:
void gluDeleteNurbsRenderer(GLUnurbs *nobj);
控制NURBS对象的属性:
gluNurbsProperty(theNurb, GLU_S...
定义一维求值器:
glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
//target参数指定了控制...
gluSphere(qobj, 0.75, 15, 10);
void gluSphere (GLUquadric *qobj, GLdouble radius, GLint slices, GLint stacks);
//绘制一个半径为radius的球体,圆心(0,0,0),经线slices,纬线stacks。
gluCylinder(qobj, 0.5, 0.3, 1....
控制绘图风格:
gluQuadricDrawStyle(qobj, GLU_FILL);
控制法线向量的方向:
gluQuadricOrientation(GLUquadric *quadObject, GLenum orientation)
指定合适生成法线向量:
gluQuadricNormals(qobj, GLU_NONE);
为二次方程表面生成纹理坐标:
gluQuadri...
GLUquadric* gluNewQuadric (void);
//创建一个新的二次方程对象,并返回一个指向他的指针
void gluDeleteQuadric (GLUquadric *state);
//销毁二次方程对象,释放内存
void APIENTRY gluQuadricCallback( GLUquadric *qobj, GLenum which, void...
GLUtesselator* gluNewTess( void );
//创建一个新的分割化对象,并返回一个指向他的指针,如果创建失败,返回NULL
void gluTessCallback(GLUtesselator *tess, GLenum which, void(CALLBACK *fn)());
//把回调函数fn与分格化对象tess相关联。回调函数的类型是由which决定的...
控制累计缓冲区:
void glAccum (GLenum op, GLfloat value);
//控制累积缓冲区,op参数选择操作,value是该操作的使用数量。
//可以使用的操作有:GL_ACCUM、GL_LOAD、GL_RETURN、GL_ADD和GL_MULT。
运动模糊:
glAccum(GL_MULT, 0~1);
//第二个参数越小,运动速度...
转自:http://blog.csdn.net/shenyisyn/article/details/
受某位网友之托,要求回复一些招投标写标书的技巧。由于最近这几天一直在外出差,所以写的稍微简单点。往见谅,同时也希望能帮到大家。
本文标的假设的前提是:公司最近想接一个软件项目,需要写招标文件(带方案),公司目前影响力不大(创业型公司),特别需要拿下此项目(客户关系已...
1.为深度测试设置比较函数:
glDepthFunc(GLenum func);
//func默认为GL_LESS
2.遮挡查询
生成一组未使用的查询ID:
glGenQueries(GLsizei n, GLuint *ids);
//返回n个当前未使用的ID,可用于表示遮挡对象的名称。这些名称是在ids数组中返回的。
判断一个标识符当前是否被一个遮挡查询...
启用模板测试:
glEnable(GL_STENCIL_TEST);
设置模板测试所使用的比较函数(func),参考值(ref)和掩码(mask):
glStencilFunc (GL_EQUAL, 0x1, 0x1);
void glStencilFunc (GLenum func, GLint ref, GLuint mask);
//默认情况下,func是...
裁剪测试:
void glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
//设置裁剪矩形的位置和大小
alpha测试:
判断alpha测试是否可用:glIsEnabled(GL_ALPHA_TEST);设置用于alpha测试的参考值和比较函数:
void glAlphaFunc (GLenum f...
查询特定的画面可以使用的基于像素的缓冲区存储信息:调用glGetIntegerv()函数
1.颜色缓冲区
可以在glGetBooleanv()函数中使用GL_STEREO或GL_DOUBLEBUFFER参数来判断自己的系统是否支持立体画面(即提供左右缓冲区)或双缓冲(即提供了前后缓冲区)。
为了判断系统支持多少辅助缓冲区,可以用GL_AUX_BUFFERS为参数调用glGetInte...
1.从光源的角度对场景进行渲染。场景看上去是什么样子无关紧要,只需要深度值,然后创建阴影图,也就是捕捉深度缓冲区的值,
并把他们存储在一个纹理图像(即阴影图)中
2.生成纹理坐标,其中(s, t)坐标引用阴影图中的位置,第三个纹理坐标r则表示与光源的距离,
然后再次绘制场景,把每个片段的r值与深度纹理值进行比较,以确定这个片段是被光所照射还是被阴影笼罩...
点块纹理和抗锯齿点的区别:
启用点块纹理:
glEnable(GL_POINT_SPRITE);
设置点块纹理的原点(决定t纹理坐标的值):
glPointparameter(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT或GL_UPPER_LEFT);...
如果没有启用光照,并且启用了颜色求和模式(glEnable(GL_COLOR_SUM)),那么当前的辅助颜色便添加到经过纹理的片段颜色上
glSecondaryColor3b(Type r, Type g, Type b);
//设置当前辅助颜色的红绿蓝成分...
多重纹理处理管线:
1.建设纹理单位
纹理单位的纹理状态:纹理图像,过滤参数,纹理环境应用,纹理坐标的自动生成,顶点数组的指定。
void glActiveTexture(GLenum texUnit);
//选择可以由纹理函数进行修改的当前纹理单位,
//texUnit是一个符号常量,其形式为GL_TEXTUREi,其中i的范围是从0到k-1,k是纹理单位的最大数...
用于自动生成纹理坐标的函数:
void glTexGeni (GLenum coord, GLenum pname, GLint param);
//参数coord必须是GL_S、GL_T、GL_R或GL_Q
//pname参数为GL_TEXTURE_GEN_MODE、GL_OBJECT_PLANE或GL_EYE_PLANE,
//如果是GL_TEXTURE_GEN_...
glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
glTexCoord2f(1.0, 1.0); glVertex3f(2.4, -1.41421);
glTexCoord2f(1.0, 0.0); glVe...
设置当前的纹理函数:
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
void glTexEnvf (GLenum target, GLenum pname, GLfloat param);
//target必须是GL_TEXTURE_FILTER_CONTROL或GL_TEXTURE_ENV
1、天堂的门户网站过时了,上帝要招标改版
印度程序员说:3000弄好,理由是模板素材费1000,人工费1000,我自己赚1000。
德国程序员程序员说:要6000,模板素材费2000,人工2000,自己赚2000。
中国程序员淡定地说:这个要给你,3000我的,剩下3000给那个印度程序员干。
上帝拍案:中国程序员中标!
2、后来...
GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
//查询n个纹理对象的纹理常驻状态,这些纹理对象的名称由textures指定,函数返回的常驻状态保存在residences数组中
void glPrioritizeTextures (GLsizei n, co...
命名纹理对象:
void glGenTextures (GLsizei n, GLuint *textures);
//在数组textures中返回n个当期未使用的值,表示纹理对象的名称
//零作为一个保留的纹理对象名,它不会被此函数当做纹理对象名称而返回
判断一个纹理名称是否处于实际使用中:
GLboolean glIsTexture (GLuint texture...
指定放大和做小的过滤方法
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
//第二个和第三个参数可以是下图值...
3.1后的版本:
int glGenerateMipmap(GLenum target);
//为与target相关联的纹理图像生成一组完整的mipmap,
后的版本:
gluBuild2DMipmaps()
int gluBuild2DMipmaps (
components,...
1.在加载时压缩纹理图像
在加载纹理图像时,只需把internalFormat参数设置为其中一种GL_COMPRESSED_*枚举值即可
可以使用glGetTexLevelParameterfv()判断是否被压缩及压缩的格式。
2.加载经过压缩的纹理图像
glCompressedTexImage2D(GLenum target, GLint level, GLint inte...
定义一个二维纹理:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth, checkImageHeight,
0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage);
void glTexImage2D (GLenum target, GLint level, G...
纹理贴图的步骤
1.创建纹理对象,并为它指定一个纹理
2.确定纹理如何应用到每个像素上
3.启用纹理贴图功能
4.绘制场景,提供纹理坐标和几何图形坐标
实例:(经过纹理贴图的棋盘)
/* Create checkerboard texture */
#define checkImageWidth 64
#define...
glMinmax(GLenum target, GLenum internalFormat, GLboolean sink);
glMinmax(GL_MINMAX, GL_RGB, GL_FALSE);
glEnable(GL_MINMAX);
//计算一副图像的最小像素值和最大像素值,target参数必须为GL_MINMAX,
//internalFormat参数指定了...
glHistogram(GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
glHistogram(GL_HISTOGRAM, HISTOGRAM_SIZE, GL_RGB, GL_FALSE);
//定义了应该如何存储一幅图像的柱状图数据。target必须设置为GL_HISTOGRAM或GL_PR...
glConvolutionFilter2D(GLenum target, GLenum ,
GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
//定义一个二维卷积过滤器,其中target参数必须是GL_CONVOLUTION_2D。internalFormat与gglColorTabl...
1.颜色表的种类
可以调用glEnable()单独启用各个颜色表
2.指定颜色表
glColorTable(GLenum target, GLenum InternelFormat, GLsizei width, GLenum format, GLenum type, const GLvoid* data);
//target设置为上表的三个参数时,说明此函数用于定义指定...
像素矩形的绘制过程:
像素矩形的读取过程:...
本文讨论完整的图像管线,像素存储模式和像素传输操作
glCopyPixels()的像素路径:
glBitmap的像素路径:
从纹理内存读取纹理或者把纹理写入到纹理内存时(glTexImage*()、glTexSubImage*())的像素路径:
当像素数据从帧缓存区中复制到纹理内存时(glCopyTexImage*()、glCopyTexSu...
大学毕业后的一年,我在多伦多市郊的一家小公司工作,做一名视听技术顾问。这个公司承接了一些非常酷的项目,包括设计电影院外形和给大型建筑消音。
本文的作者 Matt Loszak
过去的这个夏天,每个周四中午吃饭前的一小时,我都要坐在办公桌前,完成这周的报告,但我很苦恼。并不是苦恼报告的提交截止日期,而是苦恼于根本无法集中注意力完成这份报告。我不想让我的余生都坐在一张桌子前写这...
像素数据处理流程简图
void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
//从帧缓冲区中的一个矩形区域读取像素数据,这个矩形区域的左下角窗口坐标(x,y),他的宽度和高度分别为width,hei...
GLubyte space[] =
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
GLubyte letters[][13] = {
{0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0x...
void glRasterPos4d (GLdouble x, GLdouble y, GLdouble z = 0, GLdouble w = 1);
void glRasterPos4dv (const GLdouble *v);
//确定当前光栅位置,x,y,z,w指定了当前光栅位置的坐标
glWindowPos(Type x, Type y, Type z);
#define PT 1
#define STROKE 2
#define END 3
typedef struct charpoint {
CP Adata[] = {
{ 0, 0, PT}, {0, 9, PT}, {1, 10, PT},...
GLboolean glIsList (GLuint list);
//如果list已经用于表示显示列表,这个函数返回GL_TRUE,否则返回GL_FALSE
void glDeleteLists (GLuint list, GLsizei range);
//删除range个显示列表,从list指定的索引开始
glGetIntegerv(GL_MAX_LIST_NESTING...
1.具有返回值的函数
2.用于修改客户状态的函数, glPixelStore(), glSelectBuffer()
3.定义顶点数组的函数 glVertexPointer()
4.所有使用了像素存储模式的函数
5.依赖于客户状态的函数glFlush(), glFinish()
#define PI_ 3.
GLuint theT
/* Draw a torus */
static void torus(int numc, int numt)//显示列表只能包含OpenGL函数
double s,...
void display (void)
GLfloat gray[] = { 0.8, 0.8, 0.8, 1.0 };
GLfloat black[] = { 0.0, 0.0, 0.0, 1.0 };
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix ();
void glPointParameterfvEXT(GLenum pname, const TYPE* param);
//设置点图元的渲染相关的值
glPointParameterfvEXT (GL_DISTANCE_ATTENUATION_EXT, linear);
//如果pname参数是GL_DISTANCE_ATTENUATION_EXT,那么param就是...
雾是根据雾混合因子把雾颜色与源片段的颜色进行混合。
雾混合因子f的计算表达式:
void glFogf (GLenum pname, GLfloat param);
//设置用于雾计算的参数和函数,如果pname是GL_FOG_MODE,那么param就是GL_EXP(默认)、GL_EXP或GL_LINEAR,它们分别用于选择三种不同的雾因子
//如果pname是...
void glHint (GLenum target, GLenum mode);
//控制OpenGL的一些行为,target参数表示需要控制什么行为,其取值见表,
//mode参数可以是GL_FASTEST,表示效率最高,可以是GL_NICEST表示质量最好,或者GL_DONT_CARE,表示没什么偏向
1.对点和直线进行抗锯齿处理
glEnabl...
1.源因子和目标因子
void glBlendFunc (GLenum sfactor, GLenum dfactor);
//控制被处理片段(源片段)的颜色值如何与已经存储在帧缓冲区的像素(目标像素)的颜色值进行组合
//参数sfactor表示如何计算源混合因子,dfactor表示如何计算目标混合因子
glBlendFuncSeparate(GLenum ...
使用光照后,顶点的颜色是按照下面的公式计算的:
顶点的颜色 = 顶点处的材料发射颜色+全局环境光+经过适当衰减的来自所有光源的环境、散射和镜面光成分
1.材料的发射光
就是赋值给GL_EMISSION的RGB值
2.经过缩放后的全局环境光
即全局环境光*材料环颜色属性
ambient(bright model) *ambient(martial)
3.光源的贡献
=衰减因...
void glMaterialf (GLenum face, GLenum pname, GLfloat param);
//指定光照计算的当前材料的属性,face可以是GL_FRONT,GL_BACK,GL_FRONT_AND_BACK,
//pname表示设定特定的材料属性,param提供了具体的属性值
1.散射和环境反射
环境颜色影响物体的状整体颜色,当物体被直接照亮时,...
void glLightModelfv (GLenum pname, const GLfloat *params);
//设置光照属性的模型。被设置的光照属性模型的特征是由pname指定的,param表示pname参数被设置的值
1.全局环境光
GLfloat ambient[] = { 0.2, 0.2, 0.2, 1.0 };
glLightModelfv...
1.如何使光源保持静止
在使用完视图和模型变换之前设置光源的位置,init()的后面, display()之前
2.独立的移动光源
在模型变换之后设置光源位置
static int spin = 0;
void init(void)
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeMo...
1.创建光源
void glLightfv (GLenum light, GLenum pname, const GLfloat *params);
//创建指定的光源,light可以是GL_LIGHT0、GL_LIGHT1,pname定义的是光源的属性,它指定了一个命名参数。params表示表示pname属性将要被设置的值
pname和params的值
GLfloat li...
隐藏表面消除就是消除实心物体被其他物体所遮挡的部分。
深度缓冲区的原理就是把一个距离观察平面(通常是近侧裁剪平面)的深度值与窗口中的每个像素相关联,一开始,使用glClear()函数(以GL_DEPTH_BUFFER_BIT)
把所有像素的深度值设置为最大可能距离(通常是远侧裁剪平面),然后以任意顺序绘制场景中的物体
为了能够实现隐藏表面消除,调用如下代码
1.在RGBA模式下指定颜色
glColor3f (1.0, 0.0, 0.0);
//设置绘图颜色
void glClampColor(GLenum target, GLenum clamp);
//指定主颜色值和辅助颜色值是否截取
2.在颜色索引模式下指定颜色
glIndexf(GLfloat c);
//把当前颜色索引设置为c
int gluUnProject (
const GLdouble modelMatrix[16],
const GLdouble projMatrix[16],
const GLint
viewport[4]...
转置:http://blog.csdn.net/shenyisyn/article/details/
其实我创业也不是很成功(目前属于第二次)。目前为止,基本保证家里足够温饱和足够温馨,偶尔奢侈,但是我坚持走技术路线,不做土豪(因为做不了)。
  我创业的口号是:成全别人,累死自己!!
  有人问,创业混的还可以的标准什么?我总结如下:
 1、超...
static int shoulder = 0, elbow = 0;
void init(void)
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
void display(void)
glClear (GL_COLOR_BUFFER_BIT);
void display(void)
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glPushMatrix();
glutWireSphere(1.0, 20, 16);
/* draw sun */
glRotatef ((GLfloat) year, 0.0, 1.0, 0.0);/...
void glClipPlane (GLenum plane, const GLdouble *equation);
//定义一个裁剪平面,equation参数指向平面方程Ax+By+Cz+D=0的4个系数,所有不是位于这个半空间的点都将被删除掉,
//plane参数是GL_CLIP_PLANEi,其中i是一个整数,表示需要定义那个有效裁剪截面,i的值位于0和5之间
glPushMatrix(); //把当前堆栈中的所有矩阵都下压一级。当前矩阵堆栈是由glMatrixMode()指定的。
glPopMatrix(); //把堆栈顶部的那个矩阵弹出堆栈,销毁被弹出的矩阵内容...
以照相机为比例,视口变换相当于冲洗相片大小的这个阶段
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
//在窗口中定义一个像素矩形,最终的图像将映射到这个矩形中,注意,视口的纵横比一般与视景体的纵横比相同
void APIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);//变换...
1.透视投影
void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
void APIENTRY gluPerspective (
GLdouble fovy,
GLdouble aspect,...
注意:视图变换函数必须在调用任何模型变换函数之前调用,确保首先作用于物体的是模型变换
void gluLookAt (
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
glTranslatef (GLfloat x, GLfloat y, GLfloat z);
//把当前矩阵与一个表示移动物体的矩阵相乘。这个矩阵有x, y, z指定
glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
//把当前矩阵与一个表示移动物体的矩阵相乘。以逆时针方向绕着从原点到点(x...
glMatrixMode (GL_PROJECTION);//表示把当前矩阵指定为用于投影变换
//视图矩阵GL_MODELVIEW、投影矩阵:GL_PROJECTION、纹理矩阵GL_TEXTURE
glLoadIdentity ();//把当前的可修改矩阵设置为4x4单位矩阵
glLoadMatrixf(const GLfloat *m);//把当前矩阵的16个值设置为m指定...
1.我么常常忽略了自己正在谈判
问题出在你没有认清自己的角色,你还是把自己当成工程师,而项目投资人明白他在跟你谈判工程师总是想尽办法寻求合作,谈判者则绞尽脑汁占得先机,谈判时绝对不能在对方的第一个要求上妥协让步
2.一行代码比五百行架构说明更有价值
架构师往往容易被抽象的架构所吸引,沉迷于设计过程,事实上,仅有架构说明书是远远不够的。软件项目的最终目标是建立生产体系,架构师必须时刻关...
如果要自学游戏程序开发的话,可以看看下面的,呵呵。  
游戏开发资料(PDF书都是中文版的,非英文,很多是本人自己扫描制作,从未网上发布过,所以独家啦):  
1、Gamebryo 2.2游戏引擎(盛大、腾讯等公司制作网络游戏常用)+Gamebryo v2.2.1说明文档  
2、游戏PDF书及其代码:  
3D游戏编程、3D游戏编程大师技巧、Direct3D游戏编程入门教程第2版、Dir...
VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大缺点是开发效率不高。 
VC适用范围 
1、 VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现一些底层 的调用。在VC里边嵌入汇编语言很简单。
2、 VC主要用在驱动程序开发 
属性组:OpenGL将相关的状态变量进行归组glPushAttrib(GLbitfield mask);
//保存状态变量
glPopAttrib();
//恢复状态变量
glPushClientAttrib(GLbitfield mask);
//压到客户属性组堆栈上
glPopClientAttrib();
//恢复状态变量
1.创建缓冲区对象
void glGenBuffers(GLsizei n, GLuint *buffers);
//在buffers数组中返回当前n个未使用的名称,表示缓冲区对象
GLboolean glIsBuffer(GLuint buffer);
//判断是否是缓冲区对象
2.激活缓冲区对象
void glBindBuffer(GLenum target, GLuint buffer...
glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);
//format:图片
//stride:连续顶点之间的字节偏移量
//pointer:数组第一个顶点的第一个坐标的内存地址
此函数的效果相当于
if (str == 0)
1.法线向量
glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
//指定参数设置当前的法线向量2.顶点数组
.1启用数组
glEnableClientState (GL_VERTEX_ARRAY);//启用数组
.2指定数组的数据
glVertexPointer (2, GL_INT, 0, vertices);...
1.法线向量
glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
//指定参数设置当前的法线向量
2.顶点数组
.1启用数组
glEnableClientState (GL_VERTEX_ARRAY);//启用数组
.2指定数组的数据
glVertexPointer (2, GL_INT, 0, vertic...
默认情况下,点为一个像素,直线为一个像素的宽度,多边形则被画成实心填充的形式
glPointSize(GLfloat size);
//设置被渲染点的宽度,以像素为单位,默认为1
glLineWidth (GLfloat width);
//设置直线的宽度,默认为1
   glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE);//查询带锯...
鲨鱼与沙漠:传统企业怎么面对互联网?
我举几个例子。比如说无论是淘宝、天猫,还是京东商城,对于传统零售业的挑战。大家都可以感觉到。再比如通讯运营商,像电信、移动、联通,这些强大的国有企业被腾讯用一个简单的微信,不到3年的时间,基本上颠覆了。
今天很多传统的报纸和杂志,无论它的收入、读者量,都在下降。报纸和杂志被微博、微信以及各种新闻客户端所取代。传统的电视台正在失去年轻的观众,再过两年...
颠覆我觉得有这么几点内容。
第一点,所有的颠覆都是从人性的角度去颠覆。有太多创业者喜欢谈理论,谈概念,希望听那种成功的创业者分享一些故事。但是用户不会因为这个而选择你的产品,用户永远相信的是你给他创造什么价值。在今天的颠覆里面,我们能杀进去的都是别人正在做的事情,但是颠覆把这件事情换一种方式来做。
这里边有两种方式。第一种方式是简单而极致的用户体验。说得通俗点就是你让用户用你的产品时,...
《商战》是著名的营销大师杰克·特劳特和艾·里斯在其知名的《定位》之外又一力作。在2013年创业邦的年会上360董事长周鸿祎向广大创业者力荐了这本书。周鸿祎是个深度军事迷,而《商战》以军事战争原则来分析商业竞争,难怪会让周鸿祎大力为其做背书。
作者在开篇中即明确指出“商业就是战争”,其有4种战略形势:
·防御战适用于市场领导者
·进攻战适用于处于第二位的企业
·侧翼战适用于再...
我觉得有的人对创业的理解有误区。他们把创业理解成几个哥们开一个公司,回去印几盒名片,我叫董事局主席,你叫首席执行官,自己的同学脖子上都挂上个CXO,名字很洋气,也不知道什么意思。如果把这个理解为创业就大错特错。
我希望大家这样来理解创业:把创业看成是一种心态,为了实现一个目标,孜孜不倦的去追求。只要你不满足于现状,想法设法去突破,那就是创业。如果你是一个在校学生,是搞电脑,如果你不满足于只是...
“你只要是白手打天下,最后发现这个社会,越来越公正,我认为机会还是很多,你不要天天去愤青,去骂别人,至少有了互联网有了IT,你看丁磊、马化腾、李彦宏都是平头百姓,他们在这个行业能成功,说明什么?说明只要你努力你也有机会成功。”
——周鸿祎
1、我自己当年,无论我在方正给国家打工,还是我在雅虎给外国人打工,我都跟别人最大的不一样,我从来不觉得我在给他们打工,我真的可能是很有自信的人,我觉...
一定要让我们的“人脉”运转起来,互动起来,而不至于“落满灰尘”。
要想办法,让“疲软”的人脉资源“打起精神”。
在这方面,归纳起来,我们要记住这些要点:
1.人脉要靠某件“事情”来维系,所以我们要积极创造机会,策划出让大家都感兴趣的事情。
2.经常、主动地把自己的“圈子”介绍给他人,会让他人对你更感兴趣,也能让双方的人脉圈子都“运转起来”。
3.你的谈话内容要让人耳目一新,为此,...
很多人都向往着有一天自己创业,程序员更是如此。如果你想创业,那么该怎样创业、需要有哪些准备、自己还有什么不足等等这些问题你考虑过吗?本文就跟大家分享周鸿祎在接受某媒体采访时给程序员上的创业课。
       程序员创业的特别之处
       关于程序员创业,我之所以愿意谈我的观点,是因为我是程序员出身,也是从小公司做起来的,我自认为对待很多程序员个人包括共享软件作者和一些小网站还是很...
程序员经营人脉的5个要点
分类: 读书笔记人脉朋友 13:29912人阅读评论(6)收藏举报
1.努力树立自己的“个人品牌”,并在工作中不断升级、更新自己的“个人品牌”。
2.积极参加社交圈子的活动,养成为圈子服务的意识,主动在圈子中推介自己,让自己在圈子里形成良好“口碑”。
3.不断培养自己的“关系型”人格,从快乐和爱心出发,用自己的“磁力”来感染每一个人。...
当你尝试构建自己的产品时,很容易让自己陷入老一套的方式里面。有许多事情会影响你前进的动力,比如失败的产品推出,延迟,恐惧,不知从何处起步….所有的这些都会夺去你成功。
但2014是全新的一年,新年伊始,是你更新能量的最佳时机,也能推出一些实际产品。
在这个刚刚开始的一月里,本文将帮助你成功构建自己的产品。
“实现梦想的最佳时间是昨天,最坏的时间是明天,而最合适的时间是今天。”
1.他们不相信任何已经成功的人,从不迷信和追随某种经验。他们只信任自己,紧紧抓住能够 看到的东西,并预测未来的趋势。失败者恰恰相反,他们喜欢沿着前辈的脚步向前走,以为这样能降低失败的概率;他们随意相信任何人,只将眼睛盯着空洞的未来,从而丧失掉身边本来能够决定他命运的机遇。
2.从不制定宏观计划,而是注重于沿着趋势去推动事情。就像乔布斯那样做的,没有人可以规划未来,只要做好每一天并把握住可以预见的...
假设你的月收入只有2000元,你也可以过得很好。我帮你把钱分成五份。第一份600元,第二份400元,第三份300元,第四份200元,第五份500元。
第一份,用来做生活费。这么少的生活费,每天只能够分到十几元。早餐一份煮米丝,一个鸡蛋,一杯豆浆。中餐一份快餐,一个水果。晚餐自己开个小灶,煮点饭,加俩菜,睡前一杯奶。这样一月的伙食大概是500-600。不过,如果你还年轻,身体暂时还没有太多...
1.想要真正得到认可,聊天的方法就要有技巧,既然聊天的目的是晋升,聊天的过程就要服务于这个目的,要让自己敢于和同事分享各种有用信息和工作心得,互相交流工作经验。例如,你不要把自己对工作好的理解藏着。拿出来,很随意地向同事表达,创收,在工作方面给予他人实际性帮助,会给自己造势。
2. 例如,当你满足不了他人需求的时候,就想办法给别人创造需求。 如,当你的客户日理万机,无心照管自己健康的时候,你就多...
1. 机会隐藏在问题之中
我做花店,是因为市场大,但目前没有品牌。现在手机有苹果,衣服有Nike,而鲜花却没有。之前花的物流也是问题,而我就是抓住了天时、地利、人和。
2. 团队是核心竞争力
我们是按品牌来做的。“一生只送一人”把我们和其他花店区分开了。在创意之后便是执行。我们有“全世界最好的设计师+全世界最好的花+全五星酒店的花艺师”,团队是核心竞争力。其实,时尚集团和腾讯投资...
大数据时代的建筑业核弹
地球村已经进入大数据时代,这是信息化时代、互联网时代的升级版。研究表明:建筑业是数据量最大、业务规模最大的大数据行业,但同样是当前各行业中最没有数据的行业,同等规模的企业来讲,也是最没有数据的企业。
这样的行业就是典型的等待被革命的行业,但行业近30年一直被约25%的行业增速(与互联网产业增速相当)麻弊着,行业基本不思进取,管理创新能力十分微弱,企业与行业的转型...
当前房建的BIM技术应用发展较快,而专业领域如路桥、铁路、石油化工、精装饰等BIM专业化应用解决方案较少。很多专业施工企业一直在问鲁班软件,这些专业BIM何时能出来。我的回答是:如果细分行业没有意识领先的企业,我们还要等很久才能用上BIM技术。
市政路桥的BIM技术研发,相对于房建领域,要简单得多,但当前BIM技术研发推广主要集中在房建领域。主要原因包括:
1,专业领域很多,虽然已有B...
在现代工业自动化生产中,涉及到各种各样的检查、测量和零件识别应用,例如汽车零配件尺寸检查和自动装配的完整性检查,电子装配线的元件自动定位,饮料瓶盖的印刷质量检查,产品包装上的条码和字符识别等。这类应用的共同特点是连续大批量生产、对外观质量的要求非常高。
  通常这种带有高度重复性和智能性的工作是由肉眼来完成的,但在某些特殊情况下,如对微小尺寸的精确快速测量、形状匹配以及颜色辨识等,依靠肉眼根本无...
glEnable (GL_LINE_STIPPLE | GL_BLEND | GL_DEPTH_TEST | GL_FOG | GL_LIGHTING);//打开模式
GL_LINE_STIPPLE 直线的点画模式
GL_BLEND 控制RGBA颜色的混合
GL_DEPTH_TEST 深度比较
GL_LIGHTING 光照
glDisable() 禁用
glVertex2f (50.0 + ((GLfloat) i * 50.0), 75.0);//指定顶点
直线:表示一条线段
多边形:由线段组成的单闭合环,且不存在内陷部分
void glBegin(GLenum mode)
注意:只有一下gl函数能用在glBegin()和glEnd()之间...
glFlush ();//强制绘图命令开始执行,保证他们在有限时间内完成
glFinish();//强制绘图命令开始执行,在命令完成之前函数不返回
glColor3f (1.0, 1.0, 1.0);//指定绘制颜色...
glClearColor (0.0, 0.0, 0.0, 0.0);//设置清除颜色
glClear(GL_COLOR_BUFFER_BIT);//把窗口清除为当前颜色
glClearDepth(1.0);//指定深度缓冲区中每个像素需要的值
glClear(GL_DEPTH_BUFFER_BIT);//清除深度缓冲区
一、我们知道,像素颜色在图形硬件中的存储方式有两种...
void init()
glClearColor(0, 0, 0, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
void display()
glColor3f(1, 0, 1);
这两个都是glMatrixMode()函数的参数,那就先说说glMatrixMode吧~,这个函数其实就是对接下来要做什么进行一下声明,也就是在要做下一步之前告诉计算机我要对“什么”进行操作了,这个“什么”在glMatrixMode的“()”里的选项(参数)有,GL_PROJECTION,GL_MODELVIEW和GL_TEXTURE;
如果参数是GL_PROJECTION,这个是投影的意思...
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR),
// Size Of This Pixel Format Descriptor
// Version Number
PFD_DRAW_TO_WINDOW |
// Format Must Support ...
/sandylin_wind/blog/static//
英文单词解释
clip:夹子、子弹夹、回形针;夹住,修剪
sibling:同胞兄弟或姐妹
overlapped:重叠
这两个Window Stype的特性与异同素来不太清楚,今日作一笔记:
MSDN的解释为:
WS_CLIPC...
http://blog.csdn.net/savvyzheng/article/details/3988227
以前在VC6下用过OpenGL,现在转到VS2005下,居然花了我不少时间才配置好,和大家分享一下
下载OpenGL库文件,我上传到我的资源里去了。对相应库文件进行放置。把.h文件放到/Program Files/Microsoft Visual ...
1.视点变换
函数gluLookAt()
2.模型变换
旋转: glRotatef(angle, rx, ry, rz)
平移: glTranslate(tx,ty,tz)
缩放:glScalef(kx,ky,kz)
2.1 旋转变换glRotatef(θ,x,y,z)
函数中第一个参数angle是表示目标沿从点(x, y, z)到原点的方...
1.许多状态变量通过glEnable(),glDisable设置有效或无效
2.获取状态变量的值glGetIntergerV(GLenum pname, GLint* params)...
1.函数名后缀前带有2, 3, 4 说明 二维、三维、arf
2.函数名后缀带有i, d, f, s 说明其参数类型为int, double, float short
3.函数名后缀表示是向量...
一. 如何判断是否是显卡所支持的扩展:
使用函数glGetString,看一下它的原型:
const     GLubyte   * glGetString( GLenum name )
      我们以GL_EXTENSIONS为参数调用该函数,就能获得当前显卡所支持的所有扩展,像下面这样:
const GLubyte *str = glGetString(GL_EXTEN...
1.设置像素格式 包括绘图风格、颜色模式、颜色位数
2.建立景物模型 根据基本图形单元创建
3.舞台布景 设置视点
4.效果处理 设置物体的材质,加入光照条件
5.光栅化 把模型信息转化为可在计算机上显示的像素信息...
OpenGl工作流程的输入端可以是图像或集合图元,但最终的结果都是光栅化后的对象这些对象进入帧缓冲区后,由硬件显示在输出设备上。
整个OpenGL的基本工作流程如下图:
其中几何顶点数据包括模型的顶点集、线集、多边形集,这些数据经过流程图的上部,包括运算器、逐个顶点操作等;图像数据包括象素集、影像集、位图集等,图像象素数据的处理方式与几何顶点数据的处理方式是不同的,但它们都经过光栅...
我知道年轻人爱打游戏,有时候我在开会,也有人在下边玩手机游戏。打游戏不是一件坏事,但是我认为一个人应该要把握住自己,不要让娱乐过度的毁坏我们的生活和工作。反而要像主动升级打怪那样,对自己的工作和学习,充满激情地进行自我目标认定、自我激励。
我对打游戏并不反感,我也喜欢研究各种游戏,喜欢游戏的各种界面。没有人打游戏时先看书,买什么《21天学会DOTA》,但是大家都会玩,也都很喜欢玩。你打游戏的...
|字号 订阅
_ttoi: 例: 
a = _ttoi(str);
a = _tstof(str); //保留小数位
str.Format(_T(&%g&),a); %g省略末尾0;...
CString截取字符串全攻略  
例程1:(csdn) 
文件xxxx.dll去掉后面的.dll 
方法1、 
char str[] = &xxxx.dll& 
char*p; 
p=strrchr(str, '.'); 
*p = 0; 
方法2、 
CString str=&xxxx.dll&; 
int n = str.ReverseFind('...
CString.Format的详细用法
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。
  先看看F...
double dbAngle = ptBegin.GetPoint().GetAngle(ptEnd.GetPoint()); // 线段的角度McGeVector2d verVert = McGeVector2d(cos(dAngle), sin(dAngle)).GetVerticalUnit(); //偏移的方向if (VerAlign == mcVerticalAlignmentTop){...
1.先声明一个已有点集m_vctHasTopPtDim,用于保存所有点2.定义一个函数,传入当前点,与已有点集比较void CDimHelper::AdjustTopDim(McGePoint2d &ptCur)
//遍历已经标注的点
for(int i = 0; i&m_vctHasTopPtDim.size(); i++)
//找到打架的点(当前点的x坐标之差小于半径)
.clw文件记录了类的信息,如果classView中某个类不见了,重新生成该文件就可以了,方法:删除此文件,点击“建立类向导”,根据提示输入工程名称就可以了;
.ncb文件记录了类的提示信息,如果类的成员函数和变量的提示不见了,重新生成该文件即可,方法同上;
.aps文件记录了资源信息,要利用现成的资源,需要修改3个文件,.rc文件,Resource.h文件和.aps文件,.aps直...
用法:const_cast (expression)
该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
一、常量指针被转化成非常量的指针,并且仍然指向原来的对象;
二、常量引用被转换成非常量的引用,并且仍然指向原来的对象;
Voiatile和const类似。举如下一例:
源地址:http://blog.csdn.net/masefee/article/details/5131936
通过前面两篇,相信大家已经基本了解了我们的研究思路。既然是研究,那么必须的研究工具就得熟练掌握了。这里我所指的研究工具就是VC,我所使用的VC版本是2005。本文也将根据VC2005进行探讨。可能很多朋友或者初学者还是使用的VC6.0。在这里本人不推荐使用VC6.0。原因很简单,...
VCVC6.0的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,2^64),即-)与0~(约1800亿亿)(10^20)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位...
一、TRACE宏  
  
当选择了Debug目标,并且afxTraceEnabled变量被置为TRUE时,TRACE宏也就随之被激活了。但在程序的Release版本中,它们是被完全禁止的。下面是一个典型的TRACE语句: 
    … 
       int  nCount =9 ; 
        CStringstrDesc(&total& ); 
       TRACE(&...
类: CWinApp
一般在重载的InitInstance函数内调用这个函数,使应用程序的用户能够通过在Windows的文件管理器内双击文件的方式打开数据文件。
void EnableShellOpen();[1]
与这个函数一起调用RegisterShellFileTypes成员函数,或者随应用程序提供一个.REG文件,...
RUNTIME_CLASS
RUNTIME_CLASS( class_name )
class_name
类的实际名字(不用引号括起来)。
利用这个宏通过C++类的名字获得一个运行时类结构。
RUNTIME_CLASS为class_name指定的类返回一个指向CRuntimeClass结构的指针。只有用DECLARE_DYNAM...
要想在应用程序中使用ActiveX控件,必须使你的应用程序成为ActiveX控件包容器。ActiveX 控件包容器就是完全支持ActiveX控件,并能把控件组合进自己的窗口或对话框的父应用程序。利用MFC的AppWizard,你可以很方便地创建你的包容器程序。事实上,在用AppWizard创建新的应用程序时,你的应用程序就被缺省设置为控件包容器,即在第3步选中支持ActiveX Controls的...
在利用mfc框架的时候,在App应用类的InitInstance()函数中,初始化时总有一个 SetRegistryKey(&字符串XXX&)。如果你使用注册表保存相关参数,则它为你提供了很便利的方法,当然如果不使用系统注册表,这句可以注释掉。
SetRegistryKey 这个函数功能是设置MFC程序的注册表访问键,并把读写 ini 文件的成员函数映射到读写注册表。只要调用一下 SetRe...
把类“TechCompany *”和“Company *的关系改为public即可。
c++默认的是private继承,无法进行转换,检查一下是否继承后面都有一个public...
非静态成员函数可以通过fac.inrange调用
静态成员函数属于类一级的,所以可以用域操作符访问方法...
鉴于summer的要求,再加上我自己的一点兴趣,我对VAX的va snippets功能也做一下简单介绍,并配上相关图片~
首先总结下下,VAX的va snippets功能主要可分为如下三类:
1&第一类,插入模板,其中包括你提到的开发者信息。。然后就是win32基本开发模板,window及窗口回调函数模板!
操作步骤如下:
①插入header det...
你用va么?你用它来干什么?高亮,自动提示?未免大材小用了点,高亮这种东西,任意一个文本编辑器就支持!自动列出方法成员,这个是vs本身就有的功能,只不过va让它自动弹出来罢了,我觉得va最强大的应该是refactor菜单下的系列功能,当然va snappets也很好用啦!花了一个小时把refactor相关功能试了个编,现总结如下,希望我这一个小时的时间没有白费~
1&add incl...
内容提要:本文以简单的例子介绍在Visual
C++编程中数据读写的基本方法和可序列化类的实现,并简单介绍了Visual
C++中序列化的使用。
  数据读写是应用程序中必不可少的一部分,Visual
C++中数据的读写当然也十分重要,因此VisualC++在MFC中对数据的读写创造了十分好的支持,这使得我们可以十分方便的实现我们对数据读写操作的需要。
  MFC 为数据读写设...
下面的方法,是我平时工作的时候用得比较多的快捷键,是以vs2008 + VA插件 为主,不过其它版本也是差不多的。
快捷键习惯设置:
Tools-&Options-&Keyboard:Apply the following additional keyboard mapping scheme
选择Visual C++ 6
VA加快捷键:
先为VA设置一下我自己个人比较喜欢的快捷键...
上班族、久坐族近年的健康状况令人堪忧,由于缺乏运动加上长期面对辐射,使上班族身体状况越来越差。专家建议上班族应多加运动,只需小小的动作就能轻松获得健康!
  梳头:用木梳从前额至头顶部向后部梳刷,逐渐加快。梳时不要用力过猛以防划破皮肤。这样可刺激头皮神经末梢和头部穴位,促进局部血液循环,达到消除疲劳、强身和促进头发生长的效果,对脑力劳动者尤为重要。
  脸部运动:工作间隙,将嘴巴最大限...
1.CStringArray类
CStringArray类可以用来存储CString类型的对象,而且它的容量是可以动态增加的。
CStringArray
└CStringArray
CStringArray类支持CString对象数组。
CStringArray的成员函数类似于CObArray类的成员函数。由于具有这些...
1.候选函数是指在调用点上其声明是可见的且与被调用的函数同名的函数。
2.可行函数是指从候选函数中选出的函数,必须满足下列条件:函数的形参数目与该函数调用的实参数目相同;每个实参的类型必须与对应形参的类型匹配,或者可以隐式转换为对应形参的类型。...
int count_return( )
static int counts = 0;
return counts++;
int main( int argc, char **argv ) //argc用于传递argv中字符串的个数, argv是一个C风格字符串数组
for( int i = 0; i & 10; i++ )
cout && count_return()...
(1)       形参的作用域为整个函数体,而普通(非静态)局部变量和静态局部变量的作用域为:从定义处到包含该变量定义的块的结束处。
(2)       形参由调用函数时所传递的实参初始化;而普通(非静态)局部变量和静态局部变量通常用初始化式进行初始化,且均在程序执行流程第一次经过该对象的定义语句时进行初始化。静态局部变量的初始化在整个程序执行过程中进行一次。
编辑.折叠到定义
Ctrl + M,Ctrl + O
自动确定在代码中创建区域的逻辑边界(如过程),然后隐藏它们。
编辑.注释选定内容
Ctrl + K,Ctrl + C
使用编程语言的正确注释语法将代码的当前行标记为注释。(vc2003)
编辑.完成单词
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。...
int main( int argc, char **argv ) //argc用于传递argv中字符串的个数, argv是一个C风格字符串数组
if( argc != 3 )//检查命令行参数
return -1;
cout && argv[1] && &+& && argv[2] && &=& && ( ( atof(argv[1]) ) + ( atof(argv[2...
1.使用标准库规范
int sum_array( const int *beg, int *en )
int sum = 0;
while ( beg != en )
sum += *beg++;
int main()
int a[] = { 1,1,2,3,4,5,6,7,8,9 };
cout && sum_array( a...
1.当函数需要处理数组且函数体不依赖于数组的长度时应使用指针形参,其他情况下应使用引用形参:
2.指针形参的优点:可以明确地表示函数所操纵的是指向数据元素的指针,而不是数组本身,而且可以使用任意长度的实参数组来调用函数;
        缺点:函数体不能依赖于数组的长度,否则容易造成数据内存的越界访问,从而产生错误的结果或者程序崩溃。
   引用形参的优点:在函数体中依赖数组...
1.当唯一目的是避免复制实参,则将引用形参定义为const对象
2.如果在需要 const 引用时,将形参定 义为普通引用,则会导致const对象和需要类型转换的对象不能调用该函数,会增加函数的局限性...
如下情况将形参定义为引用
1.通过形参调用修改函数的值,如swap函数
2.通过一次调用获得多个结果值
3.传递大型对象时,避免复制形参
如下情况不应该将形参定义为引用
1.不需要通过函数调用修改实参的值,如求绝对值的函数...
创业期指的是推出“成功”产品前勤奋工作经常加班的那些日子,或是说,那些你觉得自己处于挫折和低谷当中,之后产品果然“失败了”的日子。 你在考虑“我是否应该将idea转换成产品”之前,应该对自己提问然后回答,它们能节约你的时间和金钱。
我有时间吗?
在讨论内容、可能性和营销等等因素之前,必须保证时间这个前提条件:
刚开始时我根本没考虑这个问题,直到辞职后,大把时间空余出来了、我完全为...
近来我的Email邮箱里塞满了想请我喝咖啡的企业家的邮件,他们总想我“顺便”给他们的创意和创业提些建议。尽管到NetLine任新职以来非常繁忙,我还是晚上或者周末挤出时间来给他们提供力所能及的建议。我屡次观察到这样的现象:开发者们正在为“他们自己”开发一个产品。我真希望他们很早就把我放进了他们的口袋里,以便更早发现这一重大隐患:他们居然在没有市场计划的情况下摸黑前进。
一次又一次地,...
创业阶段的公司,人是第一位的,事儿是人做的、资源在人手里,团队决定了项目的路能走多远,投资人最看重的也是团队。创业公司没钱没名气,招人、留人都很难,团队人员流失,不仅耽误项目进度,也影响士气,招人和留人是创业团队最头疼的问题之一,根据我创业时验证的结果总结已下几点经验:
1、价值观第一位。招人时就不要用钱来吸引人,为钱而来的也容易为钱而走,创业有风险有低谷,短期不盈利很正常,但是为钱而来的遇...
“在开始创业前,什么是你需要知道的?”这些年这个问题我被问到过很多次,不得不承认我的答案一直在变,变得更加成熟。
第一次创业的时候,我无所畏惧,甚至有些狂妄自大。我当时的态度是“关于互联网我所知道的和其他人没有两样,但我不会被过去所做的束缚住,而是会放眼未来的一切。”更重要的一点,是我有一种强烈的意识去发现哪些事需要做,而我就是付诸行动去做的那个人。
回到1999年,我还是一个充满自信...
现在距离我首次决定要创建Buffer这个应用已经将近2年时间里,在此之前的一年半时间里我一直为前一个创业项目而忙碌,就在那时,我开始发现一些规律,一些在创业过程中能影响你的生活起起伏伏的规律。
就在那个时期,我学到了一个最重要的事情:当快乐时我做事做的最好。这几乎能体现在各个方面。如果我快乐着,我编程时会更有工作效率,我能更好的解决用户的问题,我发现我还能更容易集中注意力。
就我而言,...
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不...
TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具。通过使用它,我们可以可视化的管理我们的版本库。不过由于它只是一个客户端,所以它不能对版本库进行权限管理。
TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,使用起来比较方便。
TortoiseSVN每个菜单项都表示什么意思
01、SVN Checkout(SVN取出)
dsw, aps, clw, plg这些文件都可以删除。只保留 H,C,CPP,DSP,RC,剩余文件去除只读属性,其余全部删除。然后打开DSP 有提示选 YES,就可以了。
    *.dsp(DeveloperStudio Project):是VC++的工程配置文件,比如说你的工程包含哪个文件,你的编译选项是什么等等,编译的时候是按照.dsp的配置来的。
    *.dsw(Develop...
1,首先搭建好调试环境,把代码装进IDE,然后编译通过。
2,在入口函数(main)的开头处打个断点,然后开始单步调试,你可以熟悉程序的功能结构。
3,对着程序界面,在使用程序的同时,在各个功能的方法中打断点,一个一个单步调试,你可以熟悉功能的分支流程,
4,每次调试的时候,都动手画一下流程图。
5,最后你会发现,整个工程的流程图,你已经画好了!...
int main()
ivec.push_back(1);             //赋值
ivec.push_back(2);
ivec.push_back(3);
ivec.push_back(4);
ivec.push_back(5);
ivec.push_back(6);
for (vector::iterator it =...
int main()
cin &&                                    //接收字符串
string *pstr =             //动态分配内存
svec.push_back(pstr);...
for (int i = 0; i != bs.size(); i++)
bs.set(i);                               //置位为1
bs.reset(i);                            //复位为0
int main()
cin &&                           //获取输入
vector svec(str.length());
for (unsigned int i =  0; i
svec[i] = str[i];
string *pstr = new string[str.len...
strcpy:字串复制
  原型:char *strcpy(char *dest, char *src);
strncpy:字串复制
  原型:char * strncpy(char *dest, char *src, size_t n);
区别范例:
char ch[7] = &steven&;
char ch1[5];
strcpy(ch1, ch);...
const char *cp = &steven&;
while (*cp)
int main()
int i = -1;                                    //正确
const int ic =                          //正确,常量并初始化
const int *pic = &                  //正确,pic是指向const对象的指针,ic是const对象
int main()
const size_t a = 5;
int int_a[a] = { 0, 1, 2, 3, 4};
for (int *pBegin = int_a; pBegin != int_a+a; pBegin++)           //数组的遍历
*pBegin = 1;
转自 : http://blog.csdn.net/zhaowei123191/article/details/5617559
 size_t   unsigned int
size_t是unsigned类型,用于指明数组长度或下标,它必须是一个正数,std::size_t
(2)  ptrdiff_t  signed int
ptrdiff_t...
1.指针的声明:
string* str1, str2;             //str1是指向string对象的指针, str2是string类型的变量
string *str1, *str2;           //str1是指向string对象的指针,str2是指向string对象的指针
2.建议程序员在使用之前初始化所有指针,初始化指针应注意:
int zero =...
1:array 定义后的空间是固定的了,不能改变;而vector 要灵活得多,可再加或减.
2:array 定义的时候必须定义数组的元素个数;而vector 不需要;且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对
象,非const变量以及需要到运行阶段才知道其值的const变量都不能用来定义数组的维度.3: 数组和vector不同,一个数组不能用另一个数...
bitset的定义和初始化
b有n位,每位都为0
bitset b(u); 
b是unsigned long型u的一个副本
bitset b(s); 
b是string对象s中含有的位串的副本
bitset b(s, pos, n); 
b是s中从位置pos开始的n个位的副本
bitset的操作
b.any()...
for (vector::size_type st = 0; st
ivec.push_back(st);
vector::iterator iter = ivec.begin() +ivec.end()/2;          //直接定位vector中间元素
cout && *...
for (vector::size_type st = 0; st
ivec.push_back(st);            //创建10个元素的vector对象
for (vector::iterator iter = ivec.begin(); iter != ivec.end(); iter++)
使用const_vector的类型时,我们可以得到一个迭代器,它自身的值可以改变,但不能改变其所指向元素的值,
可以对迭代器进行自增以及解引用操作符来取值,但不能对该元素赋值。
vector ivec(5, &hi&);
for (vector::const_iterator iter = ivec.begin(); iter != ivec.end(); iter++)
//错误写法
for (vector::size_type ix = 0; ix != 10; ix++)
ivec[ix] =
//正确写法
for (vector::size_type ix = 0; ix != 10; ix++)
ivec.push_...
vector对象的定义和初始化
vector类定义了好几种构造函数(2.3.3节),用来定义和初始化vector对象。表3-4列出了这些构造函数:
表3-4  几种初始化vector对象的方式
vector  v1;
vector保存类型为T的对象。默认构造函数v1为空。
vector v2(v1);
v2是v1的一个副本。
vector v3(n...
#include &test.h&
int main()
string str1;
for (string::size_type st = 0; st != str.size(); st++)
if (!ispunct(str[st]))...
string str(&STEVEN&);
for (string::size_type st = 0; st != str.size(); st++)
str[st] = tolower(str[st]);                           //把大写转化为小写
isalnum(c) 假如c是字母或数字,则为true
    isalpah(c) 假如c是字母,则为true
    iscntrl(c) 假如c是控制字符,则为true
    isdigit(c) 假如c是数字,则为true
    isgraph(c) 假如c不是空格,则为true
    islower(c) 假如c是小写字母,则为true...
string str(&dsdfasfdfad&);
for (string::size_type st = 0; st != str.size(); st++)
int main()
string str(&dfagrdag&);
for (string::size_type st = 0; st != str.size()...
string s1 = &aaa&;
string s2 = &bbb&;
string s3 = s1 + ',' ;                              //正确,把一个string对象和一个字符串字面值连接起来
string s4 = &aaa& + ',' ;                         //错误,不能将两个字符串字面值相加
str.size() 的返回值类型是size_type
为什么不是int ?
因为int表示的范围太小,虽然我们不知道size_type的确切类型,但可以
知道它是unsigned类型,它的长度是int所能存储的两倍...
getline( , )   接受两个参数,一个输入流对象和一个string对象
int main()
while ( getline(cin,str) )
输入:aaaaa sssss
输出:aaaaa sssss...
while( cin&&str )
输入: sssss aaaaa
输出: sssss
    aaaaa...
string str1;                                      //str为空串,无论在函数外或函数内都一样
string str2(&VALUE&);                     //将srt2初始化为一个字符串字面值副本
string str3(str2);...
const是外部的,声明为extend
若不是外部的,则必须初始化,且不同文件里都要声明为extern...
                                //定义
                     //声明
extern int a = 3;                //定义
extern const int a = 3;      //定义...
访问:106435次
积分:2872
积分:2872
排名:第4418名
原创:174篇
转载:55篇
评论:61条
文章:14篇
阅读:12845
文章:72篇
阅读:39092
(6)(2)(9)(26)(30)(77)(10)(4)(6)(7)(16)(37)

我要回帖

更多关于 华为ascend p7 的文章

 

随机推荐