《c/c++函数与算法速查手册》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:陈锐编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2012
  • ISBN:9787113137137
  • 页数:725 页
图书介绍:本书主要讲解了C、C++常用函数的使用方法,常见算法的算法思想、使用。其中包括C语言中的ctype.h头文件、math.h头文件、stdio.h头文件、string.h头文件、stdlib.h头文件、conio.h头文件、graphics.h头文件、stdarg.h头文件、time.h头文件、dir.h头文件中的常用函数,C++中的ios_base类、iostream类、文件流类、string类、vector类、deque类、l is t类、stack类、queue类、set类,及排序算法、查找算法、迭代算法、递推算法、递归算法、枚举算法、贪心算法、回溯算法、矩阵算法。本书内容全面、讲解详细、配合图表重难点突出、代码完整,有分明的层次架构(函数原型+ 函数解析+注意事项+函数范例)。可以作为计算机专业学生、教师、工程技术人员的参考用书、案头必备书,方便查阅。

第1篇C语言函数 2

第1章ctype.h库函数 2

1.1字符测试函数 2

1.1.1 isalnum函数——判断是否是英文字母或数字字符 2

1.1.2 isalpha函数——判断是否为英文字母 3

1.1.3 isascii函数——判断ASCII码是否位于0~127之间 4

1.1.4 iscntrl函数——判断是否是控制字符 6

1.1.5 isdigit函数——判断是否是数字字符 7

1.1.6 isgraph函数——判断是否是可打印字符(不包括空格) 8

1.1.7 islower函数——判断是否是小写英文字母 9

1.1.8 isprint函数——判断是否是可打印字符(包括空格) 11

1.1.9 ispunct函数——判断是否是标点符号 12

1.1.10 isspace函数——判断是否是空白符 13

1.1.11 isxdigit函数——判断是否是十六进制字符 14

1.2字符转换函数 16

1.2.1 tolower函数——将大写英文字母转换为小写英文字母 16

1.2.2 toupper函数——将小写英文字母转换为大写英文字母 17

1.2.3 toascii函数——将字符转换为ASCII码 18

第2章Stdio.h库函数 20

2.1字符输入/输出函数 20

2.1.1 getch函数和getche函数——从键盘读入一个字符 20

2.1.2 getchar函数——接受一个字符并显示在屏幕上 21

2.1.3 gets函数——读取一个字符串 23

2.1.4 putchar函数——在屏幕上输出一个字符 24

2.1.5 puts函数——在屏幕上输出一个字符串 25

2.2格式化输入/输出函数 26

2.2.1 printf函数——格式化输出数据 26

2.2.2 scanf函数——格式化输入数据 29

2.2.3 sprintf函数——输出格式化数据到指定的数组中 32

2.2.4 sscanf函数——从字符串读取格式化数据 33

2.2.5 vprintf函数——在屏幕上输出格式化变长参数列表 34

2.2.6 vscanf函数——从键盘读取格式化数据 36

2.3文件输入/输出函数 37

2.3.1 fgetc函数和getc函数——从文件中读取一个字符 37

2.3.2 fgets 函数——从文件中读取多个字符 39

2.3.3 fprintf函数——格式化输出数据到指定的文件中 40

2.3.4fputc函数和putc函数——输出一个字符到指定的文件中 41

2.3.5fputs函数——输出一个字符串到指定的文件中 42

2.3.6 fread函数——从文件中读取一个数据块 43

2.3.7 fscanf函数——从文件中读取格式化数据 45

2.3.8 vfprintf函数——输出格式化数据到指定的文件 47

2.3.9 vfscanf函数——从文件中读取格式化数据 48

2.3.10 fwrite函数——向文件中写入数据块 50

2.4文件定位函数 51

2.4.1 fseek函数——移动文件位置指针到指定位置 52

2.4.2 ftell函数——得到文件位置指针的当前值 53

2.4.3 rewind函数——将文件位置指针移动到文件的开头 55

2.5文件存取操作函数 56

2.5.1 fclose函数——关闭文件 56

2.5.2 fflush函数——将缓冲区的内容写入文件 57

2.5.3 fopen函数——打开文件 58

2.5.4 remove函数——删除文件 60

2.5.5 rename函数——重命名文件 61

2.6文件错误控制函数 62

2.6.1 clearerr函数——清除文件中的错误标志 62

2.6.2 feof函数——是否到达了文件末尾 64

2.6.3 ferror函数——检查文件操作是否出现了错误 65

2.7文件输入/输出函数综合应用举例 66

第3章string.h库函数 74

3.1字符串比较函数 74

3.1.1 memcmp函数和memicmp函数——比较两个字符串 74

3.1.2 strcmp函数和stricmp函数——比较两个字符串 76

3.1.3 strncmp函数strnicmp函数——比较两个字符串 77

3.2字符串复制函数 78

3.2.1 memcpy函数——复制n个字节到另一个数组 78

3.2.2 memmove函数——复制n个字节到数组中(可重叠) 80

3.2.3 strcpy函数——字符串复制 81

3.2.4 strncpy函数——复制n个字符到目的字符数组 82

3.3字符串连接函数 84

3.3.1 strcat函数——连接两个字符串 84

3.3.2 strncat函数——将字符串1的前n个字符连接到字符串 85

3.4字符串查找函数 86

3.4.1 memchr函数——在内存块中查找字符 86

3.4.2 strchr函数——在字符串中查找字符 88

3.4.3 strstr函数——查找字符串 89

3.4.4 strtok函数——分解字符串 90

3.5字符串转换函数 91

3.5.1 strlwr函数——将大写字母转换为小写字母 91

3.5.2 strrev函数——将字符串逆置 93

3.5.3 strupr函数——将小写字母转换为大写字母 94

3.6其他函数 95

3.6.1 memset函数——用指定的字符填充字符串 95

3.6.2 strlen函数——求字符串的长度 96

3.7字符串函数综合应用举例 97

第4章stdlib.h库函数 103

4.1字符串转换函数 103

4.1.1 atof函数——将字符串转换为双精度浮点数 103

4.1.2 atoi函数——将字符串转换为整数 104

4.1.3 atol函数——将字符串转换为长整型数据 106

4.1.4 itoa函数——将整数转换为字符串 107

4.1.5 ltoa函数——将长整型数转换为字符串 108

4.2动态内存管理函数 110

4.2.1 calloc函数——分配内存空间 110

4.2.2 free函数——释放内存单元 111

4.2.3 malloc函数——动态分配内存单元 113

4.2.4 realloc函数——重新分配内存单元 114

4.2.5动态内存管理函数综合应用举例 116

4.3随机数生成函数 121

4.3.1 rand函数——产生伪随机数 121

4.3.2 random函数和randomize函数——产生随机数 122

4.3.3 srand函数——初始化随机数发生器 123

4.4查找和排序函数 124

4.4.1 bsearch函数——折半查找 124

4.4.2 qsort函数——快速排序 126

4.4.3随机数生成函数和查找排序函数综合应用举例 128

4.5过程控制函数 130

4.5.1 abort函数——终止当前的进程 131

4.5.2 exit函数——退出当前的程序 132

4.5.3 system函数——执行系统命令 134

第5章math.h库函数 136

5.1三角函数 136

5.1.1 cos函数——求x的余弦值 136

5.1.2 sin函数——求x的正弦值 137

5.1.3 tan函数——求x的正切值 139

5.1.4 acos函数——求x的反余弦值 140

5.1.5 asin函数——求x的反正弦值 141

5.1.6 atan函数——求x的反正切值 142

5.2指数和对数函数 144

5.2.1 exp函数——求以自然数e为底的指数值 144

5.2.2 log函数——求自然对数 145

5.2.3 log10函数——求对数 146

5.3幂指数和开方函数 147

5.3.1 pow函数——求baseexp的值 147

5.3.2 pow10函数——求1 0exp的值 148

5.3.3 sqrt函数——求x的平方根 149

5.4绝对值函数 150

5.4.1 abs函数——求整数的绝对值 150

5.4.2 fabs函数——求浮点数的绝对值 151

5.4.3 labs函数——返回x的绝对值 152

5.5其他函数 153

5.5.1 floor函数——求不大于x的最大整数 153

5.5.2 fmod函数——返回x/y的余数 154

5.5.3 frexp函数——将浮点数分解为尾数和指数 155

5.5.4 hypot函数——由两个直角边得到斜边 157

5.5.5 modf函数——将浮点数分解为整数部分和小数部分 158

5.5.6 poly函数——计算x的n次多项式的值 159

5.6数学函数综合应用举例 160

第6章conio.h库函数 167

6.1字符输入/输出函数 167

6.1.1 cgets函数——从控制台接受输入的字符串 167

6.1.2 cprintf函数——输出格式化数据到文本窗口中 168

6.1.3 cputs函数——输出字符串到当前文本窗口 170

6.1.4 cscanf函数——从控制台接受格式化数据 171

6.2屏幕操作函数 172

6.2.1 window函数——建立字符窗口 172

6.2.2 clrscr函数——清除字符窗口中的所有字符 173

6.2.3 gettextinfo函数——得到文本模式的显示信息 174

6.2.4 gotoxy函数——将光标移动到指定的位置 176

6.2.5 wherex函数和wherey函数——返回当前窗口下光标的x和y坐标 177

6.3文本属性函数 178

6.3.1 textattr函数——设置文本的前景颜色和背景颜色 178

6.3.2 textbackground函数——设置字符屏幕的背景颜色 180

6.3.3 textcolor函数——设置字符颜色 181

6.3.4 textmode函数——设置字符屏幕的屏显模式 183

6.4文本复制函数 185

6.4.1 gettext函数——将矩形区域的文本复制到内存中 185

6.4.2 movetext函数——将矩形区域内文本复制到另一个矩形区域 187

6.4.3 puttext函数——将内存中的文本复制到矩形区域 188

第7章graphics.h库函数 190

7.1图形模式函数 190

7.1.1 initgraph函数——初始化图形系统 190

7.1.2 detectgraph函数——确定图形适配器的类型 193

7.1.3 getgraphmode函数——得到当前的图形模式 195

7.1.4 getmodename函数——得到当前的图形驱动器名字 197

7.2图形属性函数 198

7.2.1 getbkcolor函数——返回图形的背景颜色 198

7.2.2 getcolor函数——返回当前图形的线条颜色 200

7.2.3 getlinesettings函数——得到当前的线条模式 201

7.2.4 getmaxcolor函数——返回当前屏幕模式下最大有效颜色值 203

7.2.5 getpixel函数——返回指定点的像素颜色 204

7.2.6 putpixel函数——设置指定点的像素颜色 206

7.2.7 setbkcolor函数——设置屏幕的背景颜色 207

7.2.8 setcolor函数——设置图形线条的颜色 208

7.3画点类函数 210

7.3.1 getmaxx函数和getmaxy函数——返回当前图形模式下最大有效x值和y值 210

7.3.2 getx函数和gety函数——返回图形屏幕上当前位置的x值和y值 211

7.3.3 moveto函数——在视口中移动当前位置到指定点 212

7.3.4 moverel函数——根据增量移动当前位置 214

7.4画线类函数 215

7.4.1 arc函数——画圆弧 215

7.4.2 circle函数——画圆 217

7.4.3 drawpoly函数——绘制多边形 218

7.4.4 ellipse函数——绘制椭圆弧 220

7.4.5 line函数、lineto函数和linerel函数——画线 221

7.4.6 pieslice函数——画扇形 223

7.4.7 rectangle函数——绘制矩形 225

7.5图形填充函数 226

7.5.1 bar函数和bar3d函数——画填充的矩形条 226

7.5.2 fillellipse函数——画填充的椭圆 228

7.5.3 fillpoly函数——画填充的多边形 229

7.5.4 floodfill函数——为指定点所在图形设置填充色 231

7.5.5 getfillpattern函数——得到用户自定义的填充模式 232

7.5.6 getfillsettings函数——获取当前填充模式和填充色 234

7.5.7 setfillpattern函数——设置用户自定义的填充模式 236

7.5.8 setfillstyle函数——设置填充模式和颜色 237

7.6图形模式下的文本函数 239

7.6.1 outtext函数和outtextxy函数——输出一个字符串 239

7.6.2 settextjustify函数——设置字符的对齐方式 240

7.6.3 settextstyle 函数——设置字符串的字体类型、输出方向和字符大小 243

7.6.4 setusercharsize函数——设置用户自定义的字符大小 245

7.6.5 textheight函数和textwidth函数——返回字符串的高度和宽度 246

7.7屏幕操作函数 248

7.7.1 cleardevice函数和clearviewport函数——清除屏幕和视口 248

7.7.2 closegraph函数——关闭图形系统 250

7.7.3 getimage函数——将屏幕图形复制到指定的内存中 251

7.7.4 imagesize函数——返回屏幕图像的字节数 252

7.7.5 putimage函数——将内存块中的图像复制到指定的屏幕位置 254

7.7.6 setviewport函数——设置当前视口 256

7.8图形函数综合应用举例 257

第8章std arg.h库函数 266

8.1 va arg宏 266

8.2 va end宏 268

8.3 va start宏 269

8.4应用举例 271

第9章time.h库函数 274

9.1时间操作函数 274

9.1.1 clock函数——返回CPU时钟计时单元 274

9.1.2 difftime函数——计算两个时钟之间的间隔 275

9.1.3 time函数——得到当前的时间 277

9.2时间格式转换函数 278

9.2.1 asctime函数——将时间格式转换为字符串形式 278

9.2.2 ctime函数——将时间转换为字符串形式 280

9.2.3 gmtime函数——返回(格林尼治)时间结构的指针 281

9.2.4 localtime函数——返回指向时间结构的指针 282

9.2.5 mktime函数——将struct tm格式的时间转换为秒 283

9.2.6 strftime函数——将时间格式化为字符串 284

第10章dir.h库函数 287

10.1目录操作函数 287

10.1.1 chdir函数——设置当前工作目录 287

10.1.2 fnmerge函数和fnsplit函数——构造文件名和分解文件名 288

10.1.3 getcurdir函数——获取当前工作目录 291

10.1.4 getcwd函数——获取当前工作目录的全路径名 292

10.1.5 getdisk函数——返回当前驱动器代码 293

10.1.6 mkdir函数——建立一个目录 294

10.1.7 mktemp函数——建立文件名 296

10.1.8 rmdir函数——删除指定的目录 297

10.1.9 setdisk函数——设置当前工作驱动器 299

10.2文件查找函数 300

10.2.1 findfirst函数和findnext函数——搜索磁盘文件 300

10.2.2 searchpath函数——查找文件 302

第11章 其他常用函数 304

11.1 abort函数——终止程序运行 304

11.2 exit函数——正常结束程序 305

11.3 sleep函数——使程序暂停运行 307

11.4 system函数——执行DOS命令 308

11.5 bioskey函数——检查按下键盘中的按键状态 309

11.6 geninterrupt函数——产生一个软中断 312

11.7 int86函数——执行软中断 314

第2篇C++输入/输出流 318

第12章ios_base类 318

12.1 flags函数——得到/设置流的标志 319

12.2 setf函数和unsetf函数——设置/清除流的格式标志 321

12.3 precision函数——得到/设置浮点数的精度 323

12.4 width函数——得到/设置域宽 324

第13章iostream类 326

13.1 get函数——无格式的输入操作 328

13.2 getline函数——接受输入的字符串 330

13.3 ignore函数——忽略指定的字符 332

13.4 peek函数——从流中接受输入的字符 333

13.5 read函数——读取一个字符块 334

13.6 putback函数——将读取的字符返回给输入流 335

13.7 put函数——输出字符 337

13.8 fill函数——得到/设置填充字符 338

第14章 文件流类 340

14.1 ifstream构造函数——创建输入流对象 341

14.2 rdbuf函数——返回指向filebuf的指针 342

14.3 is_ open函数——检测文件是否被打开 344

14.4 open函数与close函数——打开和关闭文件 345

14.5 read函数与write函数——从流中读取数据和向流中写入数据 347

14.6 seekg函数与tellg函数——设置/得到流的位置指针位置 349

14.7 seekp函数与tellp函数——设置/得到文件的位置指针位置 350

14.8 flush函数——刷新输出流缓冲区 352

第15章string类 354

15.1字符串运算符函数 354

15.1.1字符串构造函数——构造字符串对象 354

15.1.2=运算符函数——将字符串的内容复制给新字符串对象 356

15.1.3+和+=运算符函数——连接字符串 358

15.1.4=、!=、<、>、<=、\>=运算符函数——比较字符串 359

15.1.5[]运算符函数——返回string中的某个字符 361

15.1.6 at函数——返回string中的某个字符(范围检测) 363

15.2字符串迭代器 364

15.2.1 begin函数和end函数——返回第一个字符和最后一个字符的迭代器 364

15.2.2 rbegin函数和rend函数——返回相对于begin函数和end函数的反向迭代器 365

15.3字符串长度 367

15.3.1 length函数和size函数——返回字符个数 367

15.3.2 max_size函数——返回string能容纳的最大字符个数 368

15.3.3 capacity函数——返回分配的存储空间大小 369

15.3.4 resize函数——设置string的长度 370

15.3.5 reserve函数——为string对象预留空间 372

15.3.6 empty函数——判断string是否为空 373

15.4字符串操作 374

15.4.1 insert函数——判断string是否为空 374

15.4.2 erase函数——清除string中的字符 376

15.4.3 replace函数——置换string中的字符 378

15.4.4 swap函数——交换两个字符串的内容 380

15.4.5 c str函数——返回与string等效的字符串 381

15.4.6 copy函数——取出string对象中的指定字符 383

15.4.7 find函数——在string对象中查找字符串 384

15.4.8 find_first_of函数和find_last_of函数——在string中 查找字符串(部分匹配) 385

15.4.9 substr函数——生成string的子串 387

第3篇 标准容器 390

第16章vector类 390

16.1构造类函数 390

16.1.1 vector的构造函数和析构函数——创建vector对象和释放vector对象 390

16.1.2 operator=函数——复制vector中的内容 392

16.2迭代器函数 394

16.2.1 begin函数和end函数——返回第一个元素和最后一个元素的位置 394

16.2.2 rbegin函数和rend函数——返回与最后一个元素和第一个元素相关的迭代器 395

16.3容量类函数 396

16.3.1 size函数、max_ size函数和capacity函数——返回元素实际个数、能容纳的最大元素个数和分配的存储空间大小 397

16.3.2 empty函数——判断vector是否为空 398

16.3.3 resize函数——调整vector容器的大小 399

15.3.4 reserve函数——重新为vector容器分配内存空间 401

16.4存取类函数 402

16.4.1 operator[]函数——存取vector中的元素 402

16.4.2 at函数——存取vector中的元素(进行越界检查) 404

16.4.3 front函数和back函数——返回vector中的第一个元素和最后一个元素 405

16.5操作类函数 407

16.5.1 assign函数——为vector中的元素赋值 407

16.5.2 push back函数——在vector的末尾追加新元素 409

16.5.3 pop_ back函数——删除vector中的最后一个元素 410

16.5.4 inse函数——在vector中插入元素 411

15.5.5 erase函数——删除vector中指定的元素 413

16.5.6 clear函数——清除vector中的元素 414

16.5.7 swap函数——生成string的子串 416

第17章deque类 418

17.1构造类函数 418

17.1.1 deque的构造函数和析构函数——创建deque对象 和释放deque对象 418

17.1.2 operator=函数——复制deque中的内容 420

17.2迭代器函数 422

17.2.1 begin函数和end函数——返回第一个元素和最后一个元素的位置 422

17.2.2 rbegin函数和rend函数——返回相对于begin函数和end函数的反向迭代器 423

17.3容量类函数 425

17.3.1 size函数和max size函数——返回元素实际个数和能容纳的最大元素个数 425

17.3.2 empty函数——判断deque是否为空 426

17.3.3 resize函数——调整deque容器的大小 427

17.4存取类函数 429

17.4.1 operator[]函数——存取deque中的元素 429

17.4.2 at函数——存取deque中的元素(进行越界检查) 430

17.4.3 front函数和back函数——返回deque中的第一个元素和最后一个元素 432

17.5操作类函数 433

17.5.1 assign函数——为deque中的元素赋值 434

17.5.2 push_back函数——在deque的末尾追加新元素 435

17.5.3 push _ont函数——在deque的开始位置插入新元素 436

17.5.4 pop_back函数——移除deque中的最后一个元素 438

17.5.5 pop _ont函数——移除deque中的第一个元素 439

17.5.6 insert函数——在deque的指定位置插入元素 441

17.5.7 erase函数——删除deque中指定的元素 443

17.5.8 clear函数——清除deque中的所有元素 444

17.5.9 swap函数——交换两个deque中的内容 445

第18章liSt类 447

18.1构造类函数 447

18.1.1 list的构造函数和析构函数——创建list对象和释放list对象 447

18.1.2 operator=函数——复制list中的内容 450

18.2迭代器函数 451

18.2.1 begin函数和end函数——返回第一个元素和最后一个元素的位置 451

18.2.2 rbegin函数和rend函数——返回相对于begin函数和end函数的反向迭代器 453

18.3容量类函数 454

18.3.1 size函数和max size函数——返回元素实际个数和能容纳的最大元素个数 454

18.3.2 empty函数——判断list是否为空 456

18.3.3 resize函数——调整list容器的大小 457

18.4存取类函数 458

18.4.1 front函数——返回list中的第一个元素 458

18.4.2 back函数——返回list中的最后一个元素 459

18.5操作类函数 461

18.5.1 assign函数——为list中的元素赋值 461

18.5.2 push_ back函数——在list的末尾追加新元素 462

18.5.3 push_front函数——在list的开始位置插入新元素 463

18.5.4 pop_ back函数——移除list中的最后一个元素 465

18.5.5 pop _front函数——移除list中的第一个元素 466

18.5.6 inse函数——在list的指定位置插入元素 468

18.5.7 erase函数——删除list中指定的元素 469

18.5.8 clear函数——清除list中的所有元素 471

18.5.9 swap函数——交换两个list中的内容 473

18.5.10 splice函数——将一个list容器中的元素移动到另一个list容器 474

18.5.11 remove函数——从list中移除指定的元素 476

18.5.12 remove if函数——交换两个list中的内容 477

18.5.13 unique函数——删除list中重复的元素 479

18.5.14 merge函数——将两个list链表合并 481

18.5.15 sort函数——对list中的元素排序 483

18.5.16 reverse函数——将list中的元素逆置 484

第19章stack类 486

19.1构造类函数 486

19.2容量类函数 488

19.2.1 empty函数——判断stack是否为空 489

19.2.2 size函数——返回stack中的元素个数 490

19.3存取类函数 491

19.4操作类函数 492

19.4.1 push函数——在stack的栈顶位置插入新元素 492

19.4.2 pop函数——移除stack的栈顶元素 494

第20章queue类 496

20.1构造类函数 496

20.2容量类函数 498

20.2.1 empty函数——判断queue是否为空 498

20.2.2 size函数——返回queue的大小 499

20.3存取类函数 500

20.3.1 front函数——返回queue的队头元素 500

20.3.2 back函数——返回queue的队尾元素 502

20.4操作类函数 503

20.4.1 push函数——在queue队尾插入新元素 503

20.4.2 pop函数——移除queue的队头元素 504

第21章set类 506

21.1构造类函数 506

21.2迭代器类函数 508

21.2.1 begin函数与end函数——返回set的第一个元素和最后一个元素的迭代器 508

21.2.2 rbegin函数与rend函数——返回set中的第一个元素和最后一个元素的反向迭代器 509

21.3容量类函数 511

21.3.1 empty函数——判断set是否为空 511

21.3.2 size函数——返回set的大小 512

21.3.3 max size函数——返回set能容纳的最大元素个数 513

21.4操作类函数 515

21.4.1 insert函数——在set中插入新元素 515

21.4.2 swap函数——交换两个 set中的内容 516

21.4.3 erase函数——清除set中的元素 518

21.4.4 clear函数——清空set中的元素 520

21.4.5 find函数——查找set中的元素 521

21.4.6 count函数——统计set中某一个元素的个数 522

21.4.7 lower bound函数与upper bound函数——返回set中元素下界和上界的迭代器 524

20.4.8 equal_ range函数——返回set中元素x的边界 525

第22章map类 527

22.1构造类函数 527

22.1.1 map的构造函数和析构函数——创建map对象和释放map对象 528

22.1.2 map的赋值运算符——通过一个map对象为另一个map对象赋值 529

22.2迭代器类函数 530

22.2.1 begin函数和end函数——返回第一个元素的位置和最后一个元素的后一个位置 531

22.2.2 rbegin函数和rend函数——返回一个指向map中最后一个元素的反向迭代器和第一个元素之前的反向迭代器 532

22.3容量类函数 533

22.3.1 empty函数——判断map是否为空 533

22.3.2 size函数——返回map容器中的元素个数 535

22.3.3 max_ size函数——返回map容器能容纳的最大元素个数 536

22.4存取类函数 537

22.5操作类函数 538

22.5.1 insert函数——在map中插入新元素 539

22.5.2 erase函数——移除map中的元素 540

22.5.3 swap函数——交换两个map中的内容 542

22.5.4 clear函数——清除map中的所有元素 544

22.5.5 find函数——查找map中的元素 545

22.5.6 count函数——统计map中某个元素关键字的个数 547

第4篇算法 550

第23章 排序算法 550

23.1插入排序 550

23.1.1直接插入排序 550

21.1.2折半插入排序 553

23.1.3希尔排序 556

23.2交换排序 559

23.2.1冒泡排序 559

23.2.2快速排序 564

23.3选择排序 569

23.2.1简单选择排序 569

23.3.2堆排序 574

23.4归并排序 581

23.5基数排序 584

第24章 查找算法 592

24.1基于线性表的查找 592

24.1.1顺序查找 592

24.1.2折半查找 594

24.1.3分块查找 598

24.2基于树的查找 602

24.2.1基于二叉排序树的查找操作 602

24.2.2基于二叉排序树的插入操作 604

24.3哈希表的查找 608

24.3.1哈希表的构造 608

24.3.2处理冲突的方法 610

第25章 递推算法 617

25.1顺推法 617

25.1.1斐波那契数列 617

25.1.2将十进制数转换为二进制数 620

25.1.3母牛生小牛问题 622

25.1.4杨辉三角 624

25.2逆推法 626

25.2.1猴子摘桃 626

25.2.2该存多少钱 627

第26章 迭代算法 629

26.1精确迭代法 629

26.1.1最大公约数与最小公倍数 629

26.1.2十进制整数转换为二进制整数 630

26.1.3质因数的分解 632

26.1.4谷角猜想 633

26.2近似迭代法 634

26.2.1求一个数的平方根 634

26.2.2二分法 636

26.2.3牛顿迭代法 639

26.2.4求定积分 642

第27章 递归算法 646

27.1简单递归 646

27.1.1求n的阶乘 646

27.1.2斐波那契数列 650

27.1.3求n个数中的最大者 651

27.1.4数制转换 653

27.1.5求最大公约数 654

27.2复杂递归 655

27.2.1颠倒字符串 656

27.2.2和式分解 657

27.2.3台阶问题 660

27.2.4汉诺塔问题 663

27.2.5大牛生小牛问题 665

第28章 枚举算法 668

28.1判断n是否能被3、 5、 7整除 668

28.2百钱买百鸡 671

28.3五猴分桃 673

28.4打印水仙花数 676

28.5填数游戏 677

28.6谁在说谎 679

第29章 贪心算法 682

29.1找零钱问题 682

29.2哈夫曼编码 684

29.3加油站问题 692

第30章 回溯算法 695

30.1组合问题 695

30.2填字游戏 697

30.3装箱问题 703

第31章 矩阵算法 708

31.1打印魔方阵 708

31.2打印拉丁方阵 711

31.3打印蛇形方阵 713

31.4打印内螺旋矩阵 716

31.5打印逆螺旋矩阵 718

31.6打印外螺旋矩阵 720

31.7将矩阵旋转90度 722