版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C/C++语言参考
C/C++语言参考
TableofContents
1.C/C++语言参考................................................................4
1.1预处理命令...............................................................5
1.1.1预处理命令.........................................................6
1.2操作符优先级............................................................10
1.3转义字符................................................................12
1.4ASCII码表..............................................................12
1.5基本数据类型............................................................19
1.6关键字..................................................................21
1.6.1关键字............................................................24
1.7StandardCI/O...........................................................................................................47
1.7.1StandardCI/O.................................................................................................49
1.8StandardCString&Character.................................................................................70
1.8.1StandardCString&Character.......................................................................75
1.9StandardCMath........................................................................................................92
1.9.1StandardCMath.............................................................................................94
1.10StandardCTime&Date.......................................................................................103
1.10.1StandardCTime&Date............................................................................104
1.11StandardCMemory...............................................................................................108
1.11.1StandardCMemory...................................................................................109
1.12OtherstandardCfunctions...................................................................................111
1
C/C++语言参考
1.12.1OtherstandardCfunctions.......................................................................112
1.13C++I/O..................................................................................................................119
1.13.1C++I/O........................................................................................................121
1.14C++String..............................................................................................................135
1.14.1C++String...................................................................................................137
1.15C++标准模板库.......................................................156
1.15.1C++Bitset....................................................................................................157
C++Bitset..........................................................................................158
1.15.2C++Double-EndedQueue........................................................................162
C++Double-EndedQueue.............................................................164
1.15.3C++List.......................................................................................................170
C++List.............................................................................................171
1.15.4C++Map......................................................................................................180
C++Map............................................................................................182
1.15.5C++Multimap.............................................................................................187
C++Multimap...................................................................................188
1.15.6C++Multiset...............................................................................................193
C++Multiset......................................................................................199
1.15.7C++PriorityQueue.....................................................................................218
C++PriorityQueue..........................................................................219
1.15.8C++Queue.................................................................................................220
C++Queue.......................................................................................221
2
C/C++语言参考
1.15.9C++Set......................................................................................................222
1.15.9.1C++Set...........................................................................................228
1.15.10C++Stack.................................................................................................247
1.15.10.1C++Stack......................................................................................248
1.15.11C++Vector...............................................................................................250
1.15.11.1C++Vector....................................................................................251
1.15.12Iterators.....................................................................................................262
1.16所有的C函数........................................................264
1.17所有的C++函数......................................................270
1.18所有的C/C++函数...................................................281
1.19感谢..................................................................298
2.Addenda...............................................................................................................................298
2.1Complexity...............................................................................................................298
2.2C++Containers.......................................................................................................299
2.3C++I/OFlags...........................................................................................................300
2.4StaticReturns!.........................................................................................................303
3
C/C++语言参考
1.C/C++语言参考
»匕士%C/C++
•OnjAiAuAj(See1.1)
•2Ux^udAIE%H(See1.2)
•xaQaxQ.Q(See1.3)
•ASCIIAe±i(See1.4)
•»u±%Ey%YAaBI(See1.5)
•10%uxQ(See1.6)
±ex%c63:
oStandardCl/O(See1.7)
oStandardCString&Character(See1.8)
oStandardCMath(See1.9)
oStandardCTime&Date(See1.10)
oStandardCMemory(See1.11)
oOtherstandardCfunctions(See1.12)
C++
•C++l/O(See1.13)
•C++Strings(See1.14)
4
C/C++语言参考
C++±ex%A£°a6a(See1.15)
oC++Bitsets(See1.15.1)
oC++Double-EndedQueues(See1.15.2)
oC++Lists(See1.15.3)
oC++Maps(See1.15.4)
oC++Multimaps(See1.15.5)
oC++Multisets(See1.15.6)
oC++PriorityQueues(See1.15.7)
oC++Queues(See1.15.8)
oC++Sets(See1.15.9)
oC++Stacks(See1.15.10)
oC++Vectors(See1.15.11)
olterators(See1.15.12)
1.1预处理命令
#,##(See1.1.1)manupilate字符串
#define(See1.1.1)定义变量
#error(See1.1.1)显示一个错误消息
#if,#ifdef,#ifndef,#else,#elif,#endif(See1.1.1)条件操作符
#include(See1.1.1)插入其它文件的内容
#line(See1.1.1)设置行和文件信息
5
C/C++语言参考
#pragma(See1.1.1)执行特殊命令
#undef(See1.1.1)取消定义变量
预定义变量(See1.1.1)其它变量
1.1.1预处理命令
#,##
#和##操作符是和#define宏使用的.使用#使在#后的首个参数返回为一个带
引号的字符串.例如,命令
#defineto_string(s)#s
将会使编译器把以下命令
cout<<to_string(HelloWorld!)<<endl;
理解为
cout<<"HelloWorld!"<<endl;
使用##连结##前后的内容.例如,命令
#defineconcatenate(x,y)x##y
intxy=10;
将会使编译器把
cout<<concatenate(x,y)<<endl;
解释为
6
-----------------------------C/6++------------------------------
cout<<xy<<endl;
理所当然,将会在标准输出处显示,i(r.
#define
语法:
#definemacro-namereplacement-string
#define命令用于把指定的字符串替换文件中的宏名称.也就是说,#define使编译
器把文件中每一个mcicro-name替换为replacement-string.替换的字符串结束于行
末.这里是一个经典的#define应用(至少是在C中):
#defineTRUE1
#defineFALSE0
intdone=0;
while(done!=TRUE){
)
#define命令的另外一个功能就是替换参数,使它假冒创建函数一样使用.如下的
代码:
#defineabsolute_value(x)(((x)<0)?-(x):(x))
intx=-1;
while(absolute_value(x)){
)
当使用复杂的宏时,最好使用额外的圆括号.注意在以上的例子中,变量"X"总是出
现在它自己的括号中.这样,它就可以在和0比较,或变成负值(乘以-1)前计算值.
同样的,整个宏也被括号围绕,以防止和其它代码混淆.如果你不注意的话,你可
能会被编译器曲解你的代码.
7
-----------------------------C/6++------------------------------
tterror
语法:
#errormessage
#error命令可以简单的使编译器在发生错误时停止.当遇到一个#error时,编译器会
自动输出行号而无论message的内容.本命令大多是用于调试.
#if,ttifdef,#ifndef,#else,#elif,#endif
这些命令让编译器进行简单的逻辑控制.当一个文件被编译时,你可以使用这些
命令使某些行保留或者是去处.
#ifexpression
如果表达式(expression)的值是"真"(true),那么紧随该命令的代码将会被编译.
#ifdefmacro
如果"macro"已经在一个#define声明中定义了,那么紧随该命令的代码将会被编
译.
#ifndefmacro
如果"macro"未在一个#define声明中定义,那么紧随命令的代码将会被编译.
一些小边注:命令#elif是"elseiF的一种缩写,并且他可以想你所意愿的一样工作.
你也可以在一"*'N/if后插入一^^"defined"或者"!defined"以获得更多的功能.
这里是一部分例子:
#ifdefDEBUG
cout<<"Thisisthetestversion,i=H<<i<<endl;
#else
cout<<"Thisistheproductionversion!"<<endl;
8
-------------------------------C/6++--------------------------------
#endif
你应该注意到第二个例子比在你的代码中插入多个"cout"进行调试的方法更简单.
ttinclude
语法:
#include<filename>
#includeufilename"
本命令包含一个文件并在当前位置插入.两种语法的主要不同之处是在于,如果
filename括在尖括号中,那么编译器不知道如何搜索它.如果它括在引号中,那么
编译器可以简单的搜索到文件.两种搜索的方式是由编译器决定的,一般尖括号意
味着在标准库目录中搜索,引号就表示在当前目录中搜索.Thespiffynew整洁的
新C++include目录不需要直接映射到filenames,至少对于标准库是这样.这就是
你有时能够成功编译以下命令的原因
#include<iostream>
#line
语法:
#lineline_number"filename*'
#Iine命令是用于更改_LINE_和_FILE_变量的值.文件名是可选的.
_LINE_和_FILE_变量描述被读取的当前文件和行.命令
#line10"main.cpp"
更改行号为10,当前文件改为"main.cpp”.
9
C/C++语言参考
ttpragma
#pragma命令可以让编程者让编译器执行某些事.因为#pragma命令的执行很特殊,
不同的编译器使用有所不同.一个选项可以跟踪程序的执行.
ttundef
#undef命令取消一个先前已定义的宏变量、譬如一个用#define定义的变量.
预定义变量
语法:
_LINE_
_FILE_
_DATE_
_TIME_
_cplusplus
_STDC_
下列参数在不同的编译器可能会有所不同,但是一般是可用的:
・—LINE_和_FILE—变量表示正在处理的当前行和当前文件.
・_DATE_变量表示当前日期,格式为month/day/year{月网年).
•_TIME_变量描述当前的时间,格式为hour:minute:secon邓寸:分:秒).
•_cplusplus变量只在编译C++程序时定义.
•_STDC_变量在编译一个C程序时定义,编译C++时也有可能定义.
1.2操作符优先级
优先级操作符
10
C/C++语言参考
10D->.
!~++--
2-(unary)*(dereference)
&(addressof)sizeof
3->**
4*(multiply)/%
5+-
6«»
7<<=>>=
8==!=
9&(bitwiseAND)
10A
11I
12&&
13II
14?:
15=+=-=etc.
16
11
C/C++语言参考
1.3转义字符
以下是使用转义字符的代码示例:
printf(HThis\nis\na\ntest\n\nShesaid,\"Howareyou?\n\nn);
输出:
This
is
a
test
Shesaid,"Howareyou?
1.4ASCII码表
咕%OGZE£@AU%0OZEXOQAe^o
0000NUL
1101SOHstartofheader
2202STXstartoftext
3303ETXendoftext
4404EOTendoftransmission
5505ENQenquiry
6606ACKacknowledge
7707BELbell
81008BSbackspace
12
C/C++语言参考
91109HThorizontaltab
10120ALFlinefeed
11130BVTverticaltab
1214OCFFformfeed
1315ODCRcarriagereturn
1416OESOshiftout
1517OFSIshiftin
162010DLEdatalinkescape
172111DC1noassignment,butusuallyXON
182212DC2
192313DC3noassignment,butusuallyXOFF
202414DC4
212515NAKnegativeacknowledge
222616SYNsynchronousidle
232717ETBendoftransmissionblock
243018CANcancel
253119EMendofmedium
26321ASUBsubstitute
27331BESCescape
28341CFSfileseperator
13
C/C++语言参考
29351DGSgroupseperator
30361ERSrecordseperator
31371FUSunitseperator
324020SPCspace
334121!
344222H
354323#
364424$
374525%
384626&
394727t
405028(
415129)
42522A*
43532B+
44542C
45552D-
46562E
47572F/
4860300
14
C/C++语言参考
4961311
5062322
5163333
5264344
5365355
5466366
5567377
5670388
5771399
58723A
59733B
60743C<
61753D=
62763E>
63773F?
6410040@
6510141A
6610242B
6710343C
6810444D
15
C/C++语言参考
6910545E
7010646F
7110747G
7211048H
7311149I
741124AJ
751134BK
761144CL
771154DM
781164EN
791174F0
8012050P
8112151Q
8212252R
8312353S
8412454T
8512555U
8612656V
8712757W
8813058X
16
C/C++语言参考
8913159Y
901325AZ
911335B[
921345C\
931355D]
941365EA
951375F
9614060
9714161a
9814262b
9914363c
10014464d
10114565e
10214666f
10314767g
10415068h
10515169i
1061526Aj
1071536Bk
1081546CI
17
C/C++语言参考
1091556Dm
1101566En
1111576F0
11216070P
11316171q
11416272r
11516373s
11616474t
11716575u
11816676V
11916777w
12017078X
12117179y
1221727Az
1231737B(
1241747CI
1251757D}
1261767E
1271777FDELdelete
18
C/C++语言参考
1.5基本数据类型
类型描述
void空类型
int整型
float浮点类型
double双精度浮点类型
char字符类型
C++定义了另外两个基本数据类型:bool和wchajt.
类型描述
bool布尔类型,值为true或false
wchar_t宽字符类型
类型修饰符
一些基本数据类型能够被signed,unsigned,short,和long修饰.当类型修饰符
单独使用的时候,默认的类型是int.下表是所有可能出现的数据类型:
bool
char
unsignedchar
signedchar
int
19
C/C++语言参考
unsignedint
signedint
shortint
unsignedshortint
signedshortint
longint
signedlongint
unsignedlongint
float
double
longdouble
wchar_t
类型大小和表示范围
基本数据类型的大小以及能够表示的数据范围是与编译器和硬件平台有关的.
"cfloat"(或者"float.h")头文件往往定义了基本数据类型能够表示的数据的最大
值和最小值.你也可以使用sizeof(See1.6.1)来获得类型的大小(字节数).然而,
很多平台使用了一些数据类型的标准大小,如.int和float通常占用32位,char
占用8位,double通常占用64位.bools通常以8位来实现.
20
C/C++语言参考
1.6关键字
asm(See1.6.1)插入一个汇编指令.
auto(See1.6.1)声明一个本地变量.
bool(See1.6.1)声明一个布尔型变量.
break(See1.6.1)结束一个循环.
case(See1.6.1)一个switch(See1.6.1)语句的一部分.
catch(See1.6.1)处理thrown(See1.6.1)产生的异常.
char(See1.6.1)声明一个字符型变量
class(See1.6.1)声明一个类.
const(See1.6.1)声明一个常量.
const_cast(See
从一^const变量中抛出.
1.6.1)
continue(See1.6.1)在循环中间断循环.
default(See1.6.1)是一个case(See1.6.1)语句中的缺省项
delete(See1.6.1)释放内存.
do(See1.6.1)构造循环体.
double(See1.6.1)声明一个双精度浮点变量.
dynamiccast(See
动态投射.
1.6.1)
21
C/C++语言参考
else(See1.6.1)是一个出See1.6.1)语句中的预备条件.
enum(See1.6.1)创建列举类型.
explicit(See1.6.1)仅用在构造器的正确匹配.
extern(See1.6.1)告诉编译器在别的地方变量已经被定义过了.
false(See1.6.1)属于布尔值.
float(See1.6.1)声明一个浮点型变量.
for(See1.6.1)构造循环.
friend(See1.6.1)允许非函数成员使用私有数据.
goto(See1.6.1)跳转到程序的其它地方.
if(See1.6.1)从一次判断的结果处执行代码.
inline(See1.6.1)定义一个函数为内联
int(See1.6.1)声明一个整型变量
long(See1.6.1)声明一个长整型变量.
mutable(See1.6.1)忽略const变量.
namespace(See
用一个定义的范围划分命名空间.
1.6.1)
new(See1.6.1)允许动态存储一个新变量.
operator(See1.6.1)创建重载函数.
private(See1.6.1)在一个类中声明私有成员
protected(See在一个类中声明被保护成员
22
C/C++语言参考
1.6.1)
public(See1.6.1)在一个类中声明公共成员.
register(See1.6.1)定义一个寄存器变量.
reinterpret_cast(See
改变一个变量的类型.
1.6.1)
return(See1.6.1)从一个函数中返回.
short(See1.6.1)声明一个短整型变量.
signed(See1.6.1)修改变量类型声明.
sizeof(See1.6.1)返回一个变量或类型的长度.
static(See1.6.1)给一个变量创建永久的存储空间.
static_cast(See
执行一个非多态性cast.
1.6.1)
struct(See1.6.1)创建一个新结构体.
switch(See1.6.1)让一个变量在不同的判断下执行不同的代码.
template(See1.6.1)创建一个给特殊函数.
this(See1.6.1)指向当前对象.
throw(See1.6.1)抛出一个异常.
true(See1.6.1)布尔类型的一个值.
try(See1.6.1)执行一个被throw(See1.6.1)抛出的异常.
typedef(See1.6.1)从现有的类型中创建一个新类型.
23
C/C++语言参考
typeid(See1.6.1)描述一个对象.
typename(See
声明一个类或未定义的类型.
1.6.1)
union(See1.6.1)一个结构体在当前位置分配给多个变量相同的内存.
unsigned(See1.6.1)声明一个无符号整型变量.
using(See1.6.1)用来输入一个namespace(See1.6.1).
virtual(See1.6.1)创建一个不被已构成类有限考虑的函数.
void(See1.6.1)声明函数或数据是无关联数据类型.
volatile(See1.6.1)警告编译器有关的变量可能被出乎意料的修改.
wchart(See1.6.1)声明一个带有宽度的字符型变量.
while(See1.6.1)用来构成循环.
1.6.1关键字
(See1.)->C/C++关键字(See1.6)■>细节
C/C++关键字
asm
语法:
asm("instruction");
24
C/C++语言参考
asm允许你在你的代码中直接插入汇编语言指令,各种不同的编译器为这一个指
令允许不一致形式,比如:
asm{
instruction-sequence
)
or
asm(instruction);
auto
关键字auto是用来声明完全可选择的局部变量的
bool
关键字bool是用来声明布尔逻辑变量的;也就是说,变量要么是真,要么是假。举
个例子:
booldone=false;
while(!done){
)
你也可以查看datatypesfSee1.5)这一页.
break
关键字break是用来跳出一个曲,for,orwhile的循环.它也可以结束一个switch
语句的子句,让程序忽略下面的case代码.举个例子:
while(x<100){
if(x<0)
break;
cout<<x<<endl;
25
-----------------------------C/6++------------------------------
x++;
)
break语句只能跳出本层循环,假如你要跳出一个三重嵌套的循环,你就要使用包含
其它的逻辑或者用一个goto语句跳出这个嵌套循环.
case
在switch里面用来检测匹配.
相关主题:
default,switch
catch
catch语句通常通过throw语句捕获一个异常.
相关主题:
throw,try
char
关键字char用来声明布尔型变量.你也可以查看datatypesfSee1.5)这一页…
class
语法:
classclass-name:inheritance-list{
private-members-list;
protected:
protected-members-list;
public:
26
C/C++语言参考
public-members-list;
}object-list;
关键字class允许你创建新的数据类型.class-name就是你要创建的类的名字,并且
inheritance-list是一个对你创建的新类可供选择的定义体的表单.类的默认为私有
类型成员,除非这个表单标注在公有或保护类型之下.object-list是一个或一组声明
对象.举个例子:
classDate{
intDay;
intMonth;
intYear;
public:
voiddisplay();
);
相关主题:
struct,union
const
关键字const用来告诉编译器一个一旦被初始化过的变量就不能再修改.
相关主题:
constcast
const_cast
语法:
const_cast<type>(object);
关键字const用于移除"const-ness"的数据,目标数据类型必须和原类型相同,目标数
据没有被const定义过除外.
27
---------------------------------------------------------------C/C++语言参考---------------------------------------
相关主题:
dynamiccast,reinterpretcast,statijcast
continue
continue语句用来结束这次循环在一个循环语句中,例如,下面这段代码会显示所有
除了10之外0-20的所有数字:
for(inti=0;i<21;i++){
if(i==10){
continue;
)
cout<<i<<'*";
)
相关主题:
break,do,for,while
default
switch语句中的缺省条件.
相关主题:
case,switch
delete
语法:
deletep;
delete[]pArray;
delete操作用来释放〃指向的内存.这个指针先前应该被g调用过.上面第二种形
式用于删除一个数组.
28
C/C++语言参考
相关主题:
new
do
语法:
do{
statement-list;
}while(condition);
do构建一个循环语句表,直到条件为假.注意循环中的语句至少被执行一次,因为判
断条件在循环的最后.
相关主题:
for,while
double
关键字double用来声明浮点型变量的精度.你也可以查看datatypesfSee1.5)这
一页.
dynamic_cast
语法:
dynamic_cast<type>(object);
关键字dynamic_cast强制将一个类型转化为另外一种类型,并且在执行运行时时
检查它保证它的合法性。如果你想在两个互相矛盾的类型之间转化时,cast的返
回值将为NULL.
29
---------------------------------------------------------------C/C++语言参考-------------------------------------
相关主题:
constcastreinterpretcaststatijcast
else
关键字else用在jf语句中的二中选一.
enum
语法:
enumname{name-list}var-list;
关键字enum用来创建一个包含多个名称元素的名称表.vw是可选的.例如:
enumcolor{red,orange,yellow,green,blue,indigo,violet};
colorcl=indigo;
if(cl==indigo){
cout<<nclisindigo"<<endl;
explicit
当构造函数被指定为explicit的时候,将不会自动把构造函数作为转换构造函数,这
仅仅用在当一个初始化语句参数与这个构造函数的形参匹配的情况.
extern
关键字extern用来告知编译器变量在当前范围之外声明过了.被extern语句描述过
的变量将分派不到任何空间,因为他们在别的地方被定义过了.
Extern语句频繁的用于在多个文件之间的跨范围数据传递.
30
C/C++语言参考
false
"false"是布尔型的值.
相关主题:
bool,true
float
关键字float用来声明浮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区照明节能措施
- 幼儿成长规划协议
- 药品库房作业指导书
- 农业仓库彩钢瓦搭建合同
- 临时演员参演动作片合同
- 住宅区电力供应办法
- 2024年金融理财产品售后服务保障协议3篇
- 2024年车厂出口业务合同2篇
- 外交团队管理促进国际合作
- 社交媒体经营部管理办法
- 扫描电子显微镜(SEM)-介绍-原理-结构-应用
- 北京市海淀区2024-2025学年七年级上学期期中考试英语试卷(含答案)
- 中资企业出海报告:潮涌浪阔四海扬帆
- 老旧小区改造室外消火栓工程施工方案和技术措施
- 《地质灾害监测技术规范》
- 2024-2030年中国云母制品制造市场发展状况及投资前景规划研究报告
- 2025年上半年内蒙古鄂尔多斯伊金霍洛监狱招聘17名(第三批)易考易错模拟试题(共500题)试卷后附参考答案
- 24秋国家开放大学《农产品质量管理》形考任务1-2+形考实习1-3参考答案
- 2024-2025学年人教版八年级上册地理期末测试卷(二)(含答案)
- 80、沈阳桃仙机场二平滑工程冬期施工方案
- 一年级数学练习题-20以内加减法口算题(4000道)直接打印版
评论
0/150
提交评论