count函数

之前一直以为count函数可以返回map中一个key出现的频次,即key对应的value值,主要是离散化处理计数时想当然了。
仔细理解加实践之后,count函数返回的是一个容器中,某一元素出现的次数,对于map,即返回key出现的次数,但是map中的key是不允许重复出现的,故count函数返回值只能是1(存在)或0(不存在)。

find函数

使用find,返回的是被查找元素的位置,没有则返回map.end()
要找到某一个key的value值

map<int, int> t;
if(t.find(key) != t.end()){
	t.find(key)->sencond;
                    count函数之前一直以为count函数可以返回map中一个key出现的频次,即key对应的value值,主要是离散化处理计数时想当然了。仔细理解加实践之后,count函数返回的是一个容器中,某一元素出现的次数,对于map,即返回key出现的次数,但是map中的key是不允许重复出现的,故count函数返回值只能是1(存在)或0(不存在)。find函数使用find,返回的是被查找元素的位置...
21.4 邻近查找容器元素adjacent_find 287
21.5 范围查找容器元素find_first_of 289
21.6 统计等于某值的容器元素个数count 290
21.7 条件统计容器元素个数count_if 291
21.8 元素不匹配查找mismatch 293
21.9 元素相等判断equal 295
21.10 子序列搜索search 296
21.11 重复元素子序列搜索search_n 299
21.12 最后一个子序列搜索find_end 301
21.13 本章小结 303
第22章 变易算法 304
22.1 元素复制copy 304
22.2 反向复制copy_backward 305
22.3 元素交换swap 306
22.4 迭代器交换iter_swap 307
22.5 区间元素交换swap_ranges 308
22.6 元素变换transform 309
22.7 替换 310
22.8 条件替换replace_if 311
22.9 替换和复制replace_copy 312
22.10 条件替换和复制replace_copy_if 313
22.11 填充fill 314
22.12 n次填充fill_n 315
22.13 随机生成元素generate 316
22.14 随机生成n个元素generate_n 317
22.15 移除复制remove_copy 318
22.16 条件移除复制remove_copy_if 319
22.17 移除remove 320
22.18 条件移除remove_if 321
22.19 不连续重复元素复制unique_copy 322
22.20 剔除连续重复元素unique 324
22.21 元素反向reverse 325
22.22 反向复制reverse_copy 326
22.23 旋转rotate 327
22.24 旋转复制rotate_copy 329
22.25 随机抖动random_shuffle 330
22.26 随机采样random_sample 331
22.27 容器分割partition 333
22.28 容器稳定分割stable_partition 335
22.29 本章小结 338
第23章 排序算法 339
23.1 元素入堆push_heap 339
23.2 创建堆make_heap 343
23.3 元素出堆pop_heap 348
23.4 堆排序sort_heap 351
23.5 是否为堆is_heap 352
23.6 局部排序partial_sort 354
23.7 局部排序复制partial_sort_copy 356
23.8 排序sort 359
23.9 归并merge 366
23.10 内部归并inplace_merge 368
23.11 稳定排序stable_sort 376
23.12 是否排序is_sorted 383
23.13 第n个元素nth_element 384
23.14 下确界lower_bound 386
23.15 上确界upper_bound 388
23.16 等价区间equal_range 390
23.17 折半搜索binary_search 392
23.18 子集合includes 393
23.19 集合求并set_union 394
23.20 集合求交set_ intersection 396
23.21 集合求差set_difference 398
23.22 集合求异set_symmetric_difference 399
23.23 最小值min 401
23.24 最大值max 402
23.25 最小元素min_element 403
23.26 最大元素max_element 404
23.27 字典比较lexicographical_compare 405
23.28 下一排列组合next_permutation 406
23.29 上一排列组合prev_permutation 409
23.30 本章小结 411
第24章 数值算法 412
24.1 递增赋值iota 412
24.2 元素求和accumulate 413
24.3 两序列元素内积inner_product 414
24.4 部分元素求和partial_sum 415
24.5 相邻元素求差adjacent_difference 417
24.6 n次方计算power 419
24.7 本章小结 421
第五篇 C++ STL迭代器技术
第25章 输入输出流迭代器 424
25.1 输入流迭代器 424
25.2 输出流迭代器 426
25.3 本章小结 427
第26章 插入/反向/存储迭代器 428
26.1 向前插入迭代器 428
26.2 向后插入迭代器 429
26.3 插入迭代器 431
26.4 反向迭代器 432
26.5 反向双向迭代器 434
26.6 原始存储迭代器 435
26.7 本章小结 437
附录 STL版权说明 438
				
C.参考大全第四版 本书是根据著名C语言专家HerbertSchildt的著作翻译的。这是一本关于C++语言的百科全书,包括C和C++的命令、功能、编程和应用等方面的内容。全书分为五个部分:C++基础:C子集;C++的专有特征;标准函数库;标准C++类库;C++应用程序范例。详细描述和演示了定义C++语言的关键字、语法、函数、类和特征。其中第一部分全面讨论了C++的C子集;第二部分详细介绍了C++本身的特性,如类和对象、构造函数、析构函数和模板等;第三部分描述了标准函数库;第四部分讨论了标准类库,包括STL(标准模板库);第五部分显示了两个应用C++和面向对象编程的实际例子。 本书内容全面、翔实,是学习C++编程语言的广大学生的一部有用的工具书,也是对C++感兴趣的读者的必备参考书。 第一部分 C++基础:C子集 第1章 C语言概述 1.1 C语言的起源和历史 1.2 C语言是中级语言 1.3 C语言是结构化语言 1.4 C语言是程序员的语言 1.5 C程序的结构 1.6 库和链接 1.7 分别编译 1.8 理解.C和.CPP文件扩展 第2章 表达式 2.1 五种基本数据类型 2.2 修饰基本类型 2.3 标识符名称 2.4 变量 2.5 const和volatile限定符 2.6 存储类限定符 2.7 变量初始化 2.8 常量 2.9 运算符 2.10 表达式 第3章 语句 3.1 C和C++中的真值和假值 3.2 选择语句 3.3 迭代语句 3.4 在选择和迭代语句内声明变量 3.5 跳转语句 3.6 表达式语句 3.7 块语句 第4章 数组和以null结束的字符串 4.1 一维数组 4.2 生成指向数组的指针 4.3 向函数传递一维数组 4.4 以null结束的字符串 4.5 二维数组 4.6 多维数组 4.7 带下标的指针 4.8 数组初始化 4.9 棋盘游戏实例 第5章 指针 5.1 什么是指针 5.2 指针变量 5.3 指针运算符 5.4 指针表达式 5.5 指针和数组 5.6 多级间址 5.7 初始化指针 5.8 指向函数的指针 5.9 C语言的动态分配函数 5.10 指针应用中的问题 第6章 函数 6.1 函数的一般形式 6.2 数作用域的规则 6.3 函数变元 6.4 传给main()的变元argc和argv 6.5 return语句 6.6 递归 6.7 函数原型 6.8 声明变长参数列表 6.9 传统的与现代的函数参数声明 第7章 结构、联合、枚举和用户定义的类型 7.1 结构 7.2 结构数组 7.3 向函数传递结构 7.4 结构指针 7.5 结构中的数组和结构 7.6 位域 7.7 联合 7.8 枚举 7.9 用sizeof来保证可移植性 7.10 typedef 第8章 C风格的控制台I/O 8.1 一个重要的应用说明 8.2 读写字符 8.3 读写字符串 8.4 格式化的控制台I/O 8.5 printf() 8.6 scanf() 第9章 文件I/O 9.1 C与C++的文件I/O 9.2 流和文件 9.3 流 9.4 文件 9.5 文件系统基础 9.6 fread()和fwrite() 9.7 fseek()和随机访问I/O 9.8 fprintf()和fscanf() 9.9 标准流 第10章 预处理器和注释 10.1 预处理器 10.2 #define 10.3 #error 10.4 #include 10.5 条件编译指令 10.6 #undef 10.7 使用defined 10.8 #line 10.9 #pragma 10.10 #和##预处理器运算符 10.11 预定义的宏名 10.12 注释 第二部分 C++的专有特征 第11章 C++语言概述 11.1 C++的起源 11.2 什么是面向对象的程序设计 11.3 C++基础 11.4 老的C++与现代C++ 11.5 C++的类 11.6 函数重载 11.7 运算符重载 11.8 继承 11.9 构造函数和析构函数 11.10 C++的关键字 11.11 C++程序的一般形式 第12章 类和对象 12.1 类 12.2 结构和类是相互关联的 12.3 联合和类是相互关联的 12.4 友元函数 12.5 友元类 12.6 内联函数 12.7 在类中定义内联函数 12.8 带参数的构造函数 12.9 带一个参数的构造函数:特例 12.10 静态类成员 12.11 何时执行构造函数和析构函数 12.12 作用域分辨符 12.13 嵌套类 12.14 局部类 12.15 向函数传递对象 12.16 返回对象 12.17 对象赋值 第13章 数组、指针、引用和动态分配运算符 13.1 对象数组 13.2 指向对象的指针 13.3 C++指针的类型检查 13.4 this指针 13.5 指向派生类型的指针 13.6 指向类成员的指针 13.7 引用 13.8 格式问题 13.9 C++的动态分配运算符 第14章 函数重载、拷贝构造函数和默认变元 14.1 函数重载 14.2 重载构造函数 14.3 拷贝构造函数 14.4 查找重载函数的地址 14.5 重载的过去与现在 14.6 默认的函数变元 14.7 函数重载和二义性 第15章 运算符重载 15.1 创建成员运算符函数 15.2 使用友元函数的运算符重载 15.3 重载new和delete 15.4 重载某些特殊运算符 15.5 重载逗号运算符 第16章 继承 16.1 基类访问控制 16.2 继承和保护成员 16.3 继承多个基类 16.4 构造函数、析构函数和继承 16.5 准许访问 16.6 虚基类 第17章 虚函数与多态性 17.1 虚函数 17.2 继承虚属性 17.3 虚函数是分层的 17.4 纯虚函数 17.5 使用虚函数 17.6 早期绑定与后期绑定 第18章 模板 18.1 通用函数 18.2 应用通用函数 18.3 通用类 18.4 关键字typename和export 18.5 模板的功用 第19章 异常处理 19.1 异常处理基础 19.2 处理派生类异常 19.3 异常处理选项 19.4 理解terminate()和unexpected() 19.5 uncaught_exception()函数 19.6 exception和bad_exception类 19.7 异常处理的应用 第20章 C++输入/输出系统基础 20.1 老的C++I/O与现代的C++I/O 20.2 C++的流 20.3 C++的流类 20.4格式化的I/O 20.5 重载 第21章 C++文件的输入/输出 21.1 和文件类 21.2 打开和关闭文件 21.3 读写文本文件 21.4 无格式和二进制I/O 21.5 其他get()函数 21.6 getline()函数 21.7 检测EOF 21.8 ignore()函数 21.9 peek()和putback()函数 21.10 flush()函数 21.11 随机访问 21.12 I/O状态 21.13 定制的I/O和文件 第22章 运行时类型标识与强制转换运算符 22.1 运行时类型标识 22.2 强制转换运算符 22.3 dynamic_cast 第23章 名字空间、转换函数和其他高级主题 23.1 名字空间 23.2 std名字空间 23.3 创建转换函数 23.4 const成员函数与mutable 23.5 volatile成员函数 23.6 explicit构造函数 23.7 成员初始化语法 23.8 利用关键字asm 23.9 连接说明 23.10 基于数组的I/O 23.11 C与C++的区别 第24章 标准模板库 24.1 STL概述 24.2 容器类 24.3 一般的操作原理 24.4 vector容器 24.5 list容器 24.6 map容器 24.7 算法 24.8 使用函数对象 24.9 string类 24.10 关于STL的最后一点说明 第三部分 标准函数库 第25章 基子C的输入/输出函数 25.1 clearerr函数 25.2 fclose函数 25.3 feof函数 25.4 ferror函数 25.5 fflush函数 25.6 fSetc函数 25.7 fgetpos函数 25.8 fSets函数 25.9 fopen函数 25.10 fprintf函数 25.11 fputc函数 25.12 fputs函数 25.13 fread函数 25.14 freopen函数 25.15 fscmff函数 25.16 fseek函数 25.17 fsetpos函数 25.18 ftell函数 25.19 fwrite函数 25.20 gete函数 25.21 getchar函数 25.22 gets函数 25.23 perror函数 25.24 prinff函数 25.25 putc函数 25.26 putchar函数 25.27 puts函数 25.28 remove函数 25.29 rename函数 25.30 rewind函数 25.31 scanf函数 25.32 setbuf函数 25.33 setvbuf函数 25.34 sprinff函数 25.35 sscanf函数 25.36 tmpfile函数 25.37 tmpnam函数 25.38 ungetc函数 25.39 vpfintf,vfpfintf和vsprintf函数 第26章 字符串与字符函数 26.1 isalnum函数 26.2 isalpha函数 26.3 iscntrl函数 26.4 isdiSit函数 26.5 isgraph函数 26.6 islower函数 26.7 isprint函数 26.8 ispunct函数 26.9 isspace函数 26.10 isupper函数 26.11 isxdiSit函数 26.12 memchr函数 26.13 memcmp函数 26.14 memcpy函数 26.15 memmove函数 26.16 memset函数 26.17 strcat函数 26.18 strchr函数 26.19 strcmp函数 26.20 strcoll函数 26.21 strcpy函数 26.22 strcspn函数 26.23 strerror函数 26.24 strlen函数 26.25 strncat函数 26.26 stmcmp函数 26.27 strncpy函数 26.28 strpbrk函数 26.29 strrchr函数 26.30 strspn函数 26.31 strstr函数 26.32 strtok函数 26.33 strxfrm函数 26.34 tolower函数 26.35 toupper函数 第27章 数学函数 27.1 acos函数 27.2 asin函数 27.3 atan函数 27.4 atan2函数 27.5 ceil函数 27.6 COS函数 27.7 cosh函数 27.8 exp函数 27.9 fabs函数 27.10 floor函数 27.11 fmod函数 27.12 kexp函数 27.13 ldexp函数 27.14 log函数 27.15 loglO函数 27.16 modf函数 27.17 pow函数 27.18 sin函数 27.19 sinh函数 27.20 sqrt函数 27.21 tan函数 27.22 tanh函数 第28章 时间、日期和定位函数 28.1 asctime函数 28.2 clock函数 28.3 ctime函数 28.4 difftime函数 28.5 gmtime函数 28.6 localeeonv函数 28.7 localtime函数 28.8 mktime函数 28.9 setlocale函数 28.10 strftime函数 28.11 time函数 第29章 动态分配函数 29.1 calloc函数 29.2 free函数 29.3 malloc函数 29.4 realloe函数 第30章 实用函数 30.1 abort函数 30.2 abs函数 30.3 assert函数 30.4 atexit函数 30.5 atof函数 30.6 atoi函数 30.7 atol函数 30.8 bsearch函数 30.9 div函数 30.10 exit函数 30.11 getenv函数 30.12 labs函数 30.13 ldiv函数 30.14 longjmp函数 30.15 mblen函数 30.16 mbstowes函数 30.17 mbtowc函数 30.18 qsort函数 30.19 raise函数 30.20 rand函数 30.21 setjmp函数 30.22 signal函数 30.23 srand函数 30.24 strtod函数 30.25 strtol函数 30.26 strtoul函数 30.27 system函数 30.28 va_arg,va_start和va end函数. 30.29 wcstombs函数 30.30 wctomb函数 第31章 宽字符函数 31.1 宽字符分类函数 31.2 宽字符I/O函数 31.3 宽字符串函数 31.4 宽字符串转换函数 31.5 宽字符数组函数 31.6 多字节/宽字符转换函数 第四部分 标准C++类库 第32章 标准C++I/O类 32.1 I/O类 32.2 I/O头文件 32.3 格式化标记和I/O操作算子 32.4 几个数据类型 32.5 重载运算符 32.6 通用的I/O函数 第33章 STL容器类 33.1 容器类 第34章 STL算法 34.1 adjacent_find 34.2 binary_search 34.3 copy 34.4 copy_backward 34.5 count 34.6 count_if 34.7 equal 34.8 equal_range 34.9 flll和fill_n 34.10 find 34.11 find_end 34.12 find_first_of 34.13 find_if 34.14 for_each 34.15 generate和generate_n 34.16 includes 34.17 inplace_merge 34.18 iter_swap 34.19 lexicographical_compare 34.20 lower_bound 34.21 make_heap 34.22 max 34.23 max_element 34.24 merge 34.25 min 34.26 min_element 34.27 mismatch 34.28 next_permutation 34.29 nth_element 34.30 partial sort 34.31 partial sort_copy 34.32 partition 34.33 pop_heap 34.34 prev_permutation 34.35 push_heap 34.36 random_shuffle 34.37 remove,remove_if,remove copy和remove_copy_if 34.38 replace,replace_copy,replace_if和replace_copy_if 34.39 reverse和reverse_copy 34.40 rotate和rotate_copy 34.41 search 34.42 search_n 34.43 set_difference 34.44 set_intersection 34.45 set_symmetric_difference 34.46 set_union 34.47 sort 34.48 sort_heap 34.49 stable_partition 34.50 stable_sort 34.51 swap 34.52 swap_ranges 34.53 transform 34.54 unique和unique_copy 34.55 upper_bound 第35章 STL迭代器、分配器和函数对象 35.1 迭代器 35.2 函数对象 35.3 分配器 第36章 字符串类 36.1 basic_string类 36.2 char_traits类 第37章 数字类 37.1 complex类 37.2 valarray类 37.3 数字算法 第38章 异常处理和杂项类 38.1 异常 38.2 auto_ptr 38.3 pair类 38.4 本地化 38.5 其他有趣的类 第五部分 C++应用程序范例 第39章 集成新的类:自定义字符串类 39.1 StrType类 39.2 构造函数和析构函数 39.3 字符串I/O 39.4 赋值函数 39.5 连接 39.6 子字符串减法 39.7 关系运算符 39.8 各种字符串函数 39.9 完整的StrType类 39.10 使用StrType类 39.11 创建和集成新类型 39.12 挑战 第40章 分析表达式 40.1 表达式 40.2 分析表达式:问题 40.3 分析一个表达式 40.4 parser类 40.5 剖析一个表达式 40.6 一个简单的表达式分析器 40.7 向分析器中添加变量 40.8 递归下降分析器中的语法检查 40.9 构建一个通用的分析器 40.10 需要试验的一些东西 附录A C++的.NET可管理扩展 附录B C++和机器人时代
21.4 邻近查找容器元素adjacent_find 287 21.5 范围查找容器元素find_first_of 289 21.6 统计等于某值的容器元素个数count 290 21.7 条件统计容器元素个数count_if 291 21.8 元素不匹配查找mismatch 293 21.9 元素相等判断equal 295 21.10 子序列搜索search 296 21.11 重复元素子序列搜索search_n 299 21.12 最后一个子序列搜索find_end 301 21.13 本章小结 303 第22章 变易算法 304 22.1 元素复制copy 304 22.2 反向复制copy_backward 305 22.3 元素交换swap 306 22.4 迭代器交换iter_swap 307 22.5 区间元素交换swap_ranges 308 22.6 元素变换transform 309 22.7 替换 310 22.8 条件替换replace_if 311 22.9 替换和复制replace_copy 312 22.10 条件替换和复制replace_copy_if 313 22.11 填充fill 314 22.12 n次填充fill_n 315 22.13 随机生成元素generate 316 22.14 随机生成n个元素generate_n 317 22.15 移除复制remove_copy 318 22.16 条件移除复制remove_copy_if 319 22.17 移除remove 320 22.18 条件移除remove_if 321 22.19 不连续重复元素复制unique_copy 322 22.20 剔除连续重复元素unique 324 22.21 元素反向reverse 325 22.22 反向复制reverse_copy 326 22.23 旋转rotate 327 22.24 旋转复制rotate_copy 329 22.25 随机抖动random_shuffle 330 22.26 随机采样random_sample 331 22.27 容器分割partition 333 22.28 容器稳定分割stable_partition 335 22.29 本章小结 338 第23章 排序算法 339 23.1 元素入堆push_heap 339 23.2 创建堆make_heap 343 23.3 元素出堆pop_heap 348 23.4 堆排序sort_heap 351 23.5 是否为堆is_heap 352 23.6 局部排序partial_sort 354 23.7 局部排序复制partial_sort_copy 356 23.8 排序sort 359 23.9 归并merge 366 23.10 内部归并inplace_merge 368 23.11 稳定排序stable_sort 376 23.12 是否排序is_sorted 383 23.13 第n个元素nth_element 384 23.14 下确界lower_bound 386 23.15 上确界upper_bound 388 23.16 等价区间equal_range 390 23.17 折半搜索binary_search 392 23.18 子集合includes 393 23.19 集合求并set_union 394 23.20 集合求交set_ intersection 396 23.21 集合求差set_difference 398 23.22 集合求异set_symmetric_difference 399 23.23 最小值min 401 23.24 最大值max 402 23.25 最小元素min_element 403 23.26 最大元素max_element 404 23.27 字典比较lexicographical_compare 405 23.28 下一排列组合next_permutation 406 23.29 上一排列组合prev_permutation 409 23.30 本章小结 411 第24章 数值算法 412 24.1 递增赋值iota 412 24.2 元素求和accumulate 413 24.3 两序列元素内积inner_product 414 24.4 部分元素求和partial_sum 415 24.5 相邻元素求差adjacent_difference 417 24.6 n次方计算power 419 24.7 本章小结 421 第五篇 C++ STL迭代器技术 第25章 输入输出流迭代器 424 25.1 输入流迭代器 424 25.2 输出流迭代器 426 25.3 本章小结 427 第26章 插入/反向/存储迭代器 428 26.1 向前插入迭代器 428 26.2 向后插入迭代器 429 26.3 插入迭代器 431 26.4 反向迭代器 432 26.5 反向双向迭代器 434 26.6 原始存储迭代器 435 26.7 本章小结 437 附录 STL版权说明 438
不知道网上有没有Effective STL(中文),我找不到,我自己整理出了这个《Effective STL(中文)》共享给需要的人。<br><br>《Effective STL》目录:<br><br>前言<br>致谢<br>导读<br>容器<br>条款1:仔细选择你的容器<br>条款2:小心对“容器无关代码”的幻想<br>条款3:使容器里对象的拷贝操作轻量而正确<br>条款4:用empty来代替检查size()是否为0<br>条款5:尽量使用区间成员函数代替它们的单元素兄弟<br>条款6:警惕C++最令人恼怒的解析<br>条款7:当使用new得指针的容器时,记得在销毁容器前delete那些指针<br>条款8:永不建立auto_ptr的容器<br>条款9:在删除选项中仔细选择<br>条款10:注意分配器的协定和约束<br>条款11:理解自定义分配器的正确用法<br>条款12:对STL容器线程安全性的期待现实一些<br>vector和string<br>条款13:尽量使用vector和string来代替动态分配的数组<br>条款14:使用reserve来避免不必要的重新分配<br>条款15:小心string实现的多样性<br>条款16:如何将vector和string的数据传给传统的API<br>条款17:使用“交换技巧”来修整过剩容量<br>条款18:避免使用vector<bool><br>关联容器<br>条款19:了解相等和等价的区别<br>条款20:为指针的关联容器指定比较类型<br>条款21:永远让比较函数对相等的值返回false<br>条款22:避免原地修改set和multiset的键<br>条款23:考虑使用有序vector代替关联容器<br>条款24:当关乎效率时应该在map::operator[]和map-insert之间仔细选择<br>条款25:熟悉非标准散列容器<br>迭代器<br>条款26:尽量用iterator代替const_iterator,reverse_iterator和const_reverse_iterator<br>条款27:用distance和advance把const_iterator转化成iterator<br>条款28:了解如何通过reverse_iterator的base得到iterator<br>条款29:需要一个一个字符输入时考虑使用istreambuf_iterator<br>算法<br>条款30:确保目标区间足够大<br>条款31:了解你的排序选择<br>条款32:如果你真的想删除东西的话就在类似remove的算法后接上erase<br>条款33:提防在指针的容器上使用类似remove的算法<br>条款34:注意哪个算法需要有序区间<br>条款35:通过mismatch或lexicographical比较实现简单的忽略大小写字符串比较<br>条款36:了解copy_if的正确实现<br>条款37:用accumulate或for_each来统计区间<br>仿函数、仿函数类、函数等<br>条款38:把仿函数类设计为用于值传递<br>条款39:用纯函数做判断式<br>条款40:使仿函数类可适配<br>条款41:了解使用ptr_fun、mem_fun和mem_fun_ref的原因<br>条款42:确定less<T>表示operator<.<br>使用STL编程<br>条款43:尽量用算法调用代替手写循环<br>条款44:尽量用成员函数代替同名的算法<br>条款45:注意count、find、binary_search、lower_bound、upper_bound和equal_range的区别<br>条款46:考虑使用函数对象代替函数作算法的参数<br>条款47:避免产生只写代码<br>条款48:总是#include适当的头文件<br>条款49:学习破解有关STL的编译器诊断信息<br>条款50:让你自己熟悉有关STL的网站<br>参考书目<br>附录A:区域设置和忽略大小写的字符串比较<br>附录B:在微软STL平台上的注意事项<br>词汇表<br>索引<br>关于本电子书
map和set两种容器的底层结构都是红黑树,所以容器中不会出现相同的元素,因此count()的结果只能为0和1,可以以此来判断键值元素是否存在(当然也可以使用find()方法判断键值是否存在)。 拿map<key,value>举例,find()方法返回值是一个迭代器,成功返回迭代器指向要查找的元素,失败返回的迭代器指向end。count()方法返回值是一个整数,1表示有这个元素,0表示没有这个元素。 #include<iostream> #include<map> 21.4 邻近查找容器元素adjacent_find 287 21.5 范围查找容器元素find_first_of 289 21.6 统计等于某值的容器元素个数count 290 21.7 条件统计容器元素个数count_if 291 21.8 元素不匹配查找mismatch 293 21.9 元素相等判断equal 295 21.10 子序列搜索search 296 21.11 重复元素子序列搜索search_n 299 21.12 最后一个子序列搜索find_end 301 21.13 本章小结 303 第22章 变易算法 304 22.1 元素复制copy 304 22.2 反向复制copy_backward 305 22.3 元素交换swap 306 22.4 迭代器交换iter_swap 307 22.5 区间元素交换swap_ranges 308 22.6 元素变换transform 309 22.7 替换 310 22.8 条件替换replace_if 311 22.9 替换和复制replace_copy 312 22.10 条件替换和复制replace_copy_if 313 22.11 填充fill 314 22.12 n次填充fill_n 315 22.13 随机生成元素generate 316 22.14 随机生成n个元素generate_n 317 22.15 移除复制remove_copy 318 22.16 条件移除复制remove_copy_if 319 22.17 移除remove 320 22.18 条件移除remove_if 321 22.19 不连续重复元素复制unique_copy 322 22.20 剔除连续重复元素unique 324 22.21 元素反向reverse 325 22.22 反向复制reverse_copy 326 22.23 旋转rotate 327 22.24 旋转复制rotate_copy 329 22.25 随机抖动random_shuffle 330 22.26 随机采样random_sample 331 22.27 容器分割partition 333 22.28 容器稳定分割stable_partition 335 22.29 本章小结 338 第23章 排序算法 339 23.1 元素入堆push_heap 339 23.2 创建堆make_heap 343 23.3 元素出堆pop_heap 348 23.4 堆排序sort_heap 351 23.5 是否为堆is_heap 352 23.6 局部排序partial_sort 354 23.7 局部排序复制partial_sort_copy 356 23.8 排序sort 359 23.9 归并merge 366 23.10 内部归并inplace_merge 368 23.11 稳定排序stable_sort 376 23.12 是否排序is_sorted 383 23.13 第n个元素nth_element 384 23.14 下确界lower_bound 386 23.15 上确界upper_bound 388 23.16 等价区间equal_range 390 23.17 折半搜索binary_search 392 23.18 子集合includes 393 23.19 集合求并set_union 394 23.20 集合求交set_ intersection 396 23.21 集合求差set_difference 398 23.22 集合求异set_symmetric_difference 399 23.23 最小值min 401 23.24 最大值max 402 23.25 最小元素min_element 403 23.26 最大元素max_element 404 23.27 字典比较lexicographical_compare 405 23.28 下一排列组合next_permutation 406 23.29 上一排列组合prev_permutation 409 23.30 本章小结 411 第24章 数值算法 412 24.1 递增赋值iota 412 24.2 元素求和accumulate 413 24.3 两序列元素内积inner_product 414 24.4 部分元素求和partial_sum 415 24.5 相邻元素求差adjacent_difference 417 24.6 n次方计算power 419 24.7 本章小结 421 第五篇 C++ STL迭代器技术 第25章 输入输出流迭代器 424 25.1 输入流迭代器 424 25.2 输出流迭代器 426 25.3 本章小结 427 第26章 插入/反向/存储迭代器 428 26.1 向前插入迭代器 428 26.2 向后插入迭代器 429 26.3 插入迭代器 431 26.4 反向迭代器 432 26.5 反向双向迭代器 434 26.6 原始存储迭代器 435 26.7 本章小结 437 附录 STL版权说明 438
4. 查找元素: - find():通过键查找对应的迭代器,如果找到则返回迭代器,否则返回末尾迭代器。 - count():返回指定键在map中出现的次数,由于map中每个键都是唯一的,所以返回值要么是0要么是1。 5. 大小和容量: - size():返回map中键值对的数量。 - empty():判断map是否为空。 6. 遍历元素: - 使用迭代器遍历map中的所有键值对。 这些只是std::map的一部分常用函数,还有其他更多函数可以用于不同的操作。你可以参考C++标准库的文档或其他相关资源来了解更多关于std::map函数和用法。