cctype (ctype.h)
http://blog.csdn.net/lin49940/article/details/5535700
<C++ Primer 第四版> 3.2.4 节 string 对象中字符的处理
<C++ Primer Plus 第五版> 6.3 节 字符函数库 cctype(比前者多个isblank介绍, 比较详细)
header
Character handling functions
This header declares a set of functions to classify and transform individual characters.
All these functions take as parameter the int equivalent of one character and return an int, that can either be another character or a value representing a boolean value: an int value of 0 means false, and an int value different from 0 represents true.
There are two sets of functions:
First a set of classifying functions that check whether the character passed as parameter belongs to a certain category. These are:
All these functions take as parameter the int equivalent of one character and return an int, that can either be another character or a value representing a boolean value: an int value of 0 means false, and an int value different from 0 represents true.
There are two sets of functions:
First a set of classifying functions that check whether the character passed as parameter belongs to a certain category. These are:
函数名称 | 返回值 |
isalnum() | 如果参数是字母数字, 即字母或数字, 该函数返回 true |
isalpha() | 如果参数是字母, 该函数返回 true |
isblank() | 如果参数是空格或水平制表符, 该函数返回 true |
iscntrl() | 如果参数是控制字符, 该函数返回 true |
isdigit() | 如果参数是数字 (0~9), 该函数返回 true |
isgraph() | 如果参数是除空格之外的打印字符, 该函数返回 true |
isprint() | 如果参数是打印字符 (包括空格), 该函数返回 true |
ispunct() | 如果参数是标点符号, 该函数返回 true |
isspace() | 如果参数是标准空白字符, 如空格、进纸、换行符、回车、水平制表符或垂直制表符, 该函数返回 true |
islower() | 如果参数是小写字母, 该函数返回 true |
isupper() | 如果参数是大写字母, 该函数返回 true |
isxidgit() | 如果参数是十六进制的数字, 即 0~9, a~f 或 A~F, 该函数返回 true |
(C++ Primer Plus 第五版)
And secondly, two functions to convert between letter cases:
tolower | Convert uppercase letter to lowercase (function) |
toupper | Convert lowercase letter to uppercase (function) |
algorithm
algorithm意为"演算法",是C++的标准模版库(
STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模版函数。
目录
1函数编辑
不修改内容的序列操作:
adjacent_find | 查找两个相邻(Adjacent)的等价(Identical)元素 |
all_ofC++11 | 检测在给定范围中是否所有元素都满足给定的条件 |
any_ofC++11 | 检测在给定范围中是否存在元素满足给定条件 |
count | 返回值等价于给定值的元素的个数 |
count_if | 返回值满足给定条件的元素的个数 |
equal | 返回两个范围是否相等 |
find | 返回第一个值等价于给定值的元素 |
find_end | 查找范围A中与范围B等价的子范围最后出现的位置 |
find_first_of | 查找范围A中第一个与范围B中任一元素等价的元素的位置 |
find_if | 返回第一个值满足给定条件的元素 |
find_if_notC++11 | 返回第一个值不满足给定条件的元素 |
for_each | 对范围中的每个元素调用指定函数 |
mismatch | 返回两个范围中第一个元素不等价的位置 |
none_ofC++11 | 检测在给定范围中是否不存在元素满足给定的条件 |
search | 在范围A中查找第一个与范围B等价的子范围的位置 |
search_n | 在给定范围中查找第一个连续n个元素都等价于给定值的子范围的位置 |
修改内容的序列操作:
copy | 将一个范围中的元素拷贝到新的位置处 |
copy_backward | 将一个范围中的元素按逆序拷贝到新的位置处 |
copy_ifC++11 | 将一个范围中满足给定条件的元素拷贝到新的位置处 |
copy_nC++11 | 拷贝 n 个元素到新的位置处 |
fill | 将一个范围的元素赋值为给定值 |
fill_n | 将某个位置开始的 n 个元素赋值为给定值 |
generate | 将一个函数的执行结果保存到指定范围的元素中,用于批量赋值范围中的元素 |
generate_n | 将一个函数的执行结果保存到指定位置开始的 n 个元素中 |
iter_swap | 交换两个迭代器(Iterator)指向的元素 |
moveC++11 | 将一个范围中的元素移动到新的位置处 |
move_backwardC++11 | 将一个范围中的元素按逆序移动到新的位置处 |
random_shuffle | 随机打乱指定范围中的元素的位置 |
remove | 将一个范围中值等价于给定值的元素删除 |
remove_if | 将一个范围中值满足给定条件的元素删除 |
remove_copy | 拷贝一个范围的元素,将其中值等价于给定值的元素删除 |
remove_copy_if | 拷贝一个范围的元素,将其中值满足给定条件的元素删除 |
replace | 将一个范围中值等价于给定值的元素赋值为新的值 |
replace_copy | 拷贝一个范围的元素,将其中值等价于给定值的元素赋值为新的值 |
replace_copy_if | 拷贝一个范围的元素,将其中值满足给定条件的元素赋值为新的值 |
replace_if | 将一个范围中值满足给定条件的元素赋值为新的值 |
reverse | 反转排序指定范围中的元素 |
reverse_copy | 拷贝指定范围的反转排序结果 |
rotate | 循环移动指定范围中的元素 |
rotate_copy | 拷贝指定范围的循环移动结果 |
shuffleC++11 | 用指定的随机数引擎随机打乱指定范围中的元素的位置 |
swap | 交换两个对象的值 |
swap_ranges | 交换两个范围的元素 |
transform | 对指定范围中的每个元素调用某个函数以改变元素的值 |
unique | 删除指定范围中的所有连续重复元素,仅仅留下每组等值元素中的第一个元素。 |
unique_copy | 拷贝指定范围的唯一化(参考上述的 unique)结果 |
划分操作:
is_partitionedC++11 | 检测某个范围是否按指定谓词(Predicate)划分过 |
partition | 将某个范围划分为两组 |
partition_copyC++11 | 拷贝指定范围的划分结果 |
partition_pointC++11 | 返回被划分范围的划分点 |
stable_partition | 稳定划分,两组元素各维持相对顺序 |
排序操作:
is_sortedC++11 | 检测指定范围是否已排序 |
is_sorted_untilC++11 | 返回最大已排序子范围 |
nth_element | 部份排序指定范围中的元素,使得范围按给定位置处的元素划分 |
partial_sort | 部份排序 |
partial_sort_copy | 拷贝部分排序的结果 |
sort | 排序 |
stable_sort | 稳定排序 |
二分法查找操作:
binary_search | 判断范围中是否存在值等价于给定值的元素 |
equal_range | 返回范围中值等于给定值的元素组成的子范围 |
lower_bound | 返回指向范围中第一个值大于或等于给定值的元素的迭代器 |
upper_bound | 返回指向范围中第一个值大于给定值的元素的迭代器 |
集合操作:
includes | 判断一个集合是否是另一个集合的子集 |
inplace_merge | 就绪合并 |
merge | 合并 |
set_difference | 获得两个集合的差集 |
set_intersection | 获得两个集合的交集 |
set_symmetric_difference | 获得两个集合的对称差 |
set_union | 获得两个集合的并集 |
堆操作:
is_heap | 检测给定范围是否满足堆结构 |
is_heap_untilC++11 | 检测给定范围中满足堆结构的最大子范围 |
make_heap | 用给定范围构造出一个堆 |
pop_heap | 从一个堆中删除最大的元素 |
push_heap | 向堆中增加一个元素 |
sort_heap | 将满足堆结构的范围排序 |
最大/最小操作:
is_permutationC++11 | 判断一个序列是否是另一个序列的一种排序 |
lexicographical_compare | 比较两个序列的字典序 |
max | 返回两个元素中值最大的元素 |
max_element | 返回给定范围中值最大的元素 |
min | 返回两个元素中值最小的元素 |
min_element | 返回给定范围中值最小的元素 |
minmaxC++11 | 返回两个元素中值最大及最小的元素 |
minmax_elementC++11 | 返回给定范围中值最大及最小的元素 |
next_permutation | 返回给定范围中的元素组成的下一个按字典序的排列 |
prev_permutation | 返回给定范围中的元素组成的上一个按字典序的排列 |