程序设计艺术(1): STL
温馨提醒
#STL常用算法函数及其参数简明含义
供快速回顾(常用函数摘自HFUT ICPC讲义P21)
find
- 功能:在范围
[first, last)
中查找值为val
的第一个元素。 - 参数:
InIt first, InIt last
:输入迭代器,指定搜索范围。const T& val
:需要查找的值。
- 功能:在范围
find_if
- 功能:在范围
[first, last)
中查找第一个满足谓词pr
的元素。 - 参数:
InIt first, InIt last
:输入迭代器。Pred pr
:一元谓词函数,返回布尔值。
- 功能:在范围
count
- 功能:计算范围
[first, last)
中等于val
的元素个数。 - 参数:
InIt first, InIt last
:输入迭代器。const T& val
:待计数的值。
- 功能:计算范围
count_if
- 功能:计算范围
[first, last)
中满足谓词pr
的元素个数。 - 参数:
InIt first, InIt last
:输入迭代器。Pred pr
:一元谓词函数。
- 功能:计算范围
copy
- 功能:将范围
[first, last)
中的元素复制到x
开始的位置。 - 参数:
InIt first, InIt last
:输入迭代器。OutIt x
:输出迭代器,复制的目标位置。
- 功能:将范围
swap
- 功能:交换两个变量
x
和y
的值。 - 参数:
T& x, T& y
:需要交换的两个变量。
- 功能:交换两个变量
swap_ranges
- 功能:交换两个范围
[first, last)
和从x
开始的元素。 - 参数:
FwdIt1 first, FwdIt1 last
:第一个范围的迭代器。FwdIt2 x
:第二个范围的起始迭代器。
- 功能:交换两个范围
replace
- 功能:将范围
[first, last)
中等于vold
的元素替换为vnew
。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。const T& vold, const T& vnew
:旧值和新值。
- 功能:将范围
replace_if
- 功能:将范围
[first, last)
中满足谓词pr
的元素替换为val
。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。Pred pr
:一元谓词函数。const T& val
:替换的值。
- 功能:将范围
generate
- 功能:用生成器
g
生成的值填充范围[first, last)
。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。Gen g
:生成器函数。
- 功能:用生成器
generate_n
- 功能:用生成器
g
生成的值填充从first
开始的n
个元素。 - 参数:
OutIt first
:输出迭代器。Dist n
:生成元素的数量。Gen g
:生成器函数。
- 功能:用生成器
remove
- 功能:删除范围
[first, last)
中等于val
的元素,并返回新范围的末尾迭代器。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。const T& val
:需要删除的值。
- 功能:删除范围
remove_if
- 功能:删除范围
[first, last)
中满足谓词pr
的元素,并返回新范围的末尾迭代器。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。Pred pr
:一元谓词函数。
- 功能:删除范围
remove_copy
- 功能:将范围
[first, last)
中不等于val
的元素复制到x
开始的地方。 - 参数:
InIt first, InIt last
:输入迭代器。OutIt x
:输出迭代器。const T& val
:待删除的值。
- 功能:将范围
remove_copy_if
- 功能:将范围
[first, last)
中不满足谓词pr
的元素复制到x
开始的位置。 - 参数:
InIt first, InIt last
:输入迭代器。OutIt x
:输出迭代器。Pred pr
:一元谓词函数。
- 功能:将范围
unique
- 功能:删除范围
[first, last)
中相邻的重复元素。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。
- 功能:删除范围
unique
(带谓词)- 功能:删除范围
[first, last)
中相邻满足谓词pr
的重复元素。 - 参数:
FwdIt first, FwdIt last
:输入迭代器。Pred pr
:二元谓词函数。
- 功能:删除范围
reverse
- 功能:反转范围
[first, last)
中的元素。 - 参数:
BidIt first, BidIt last
:双向迭代器。
- 功能:反转范围
reverse_copy
- 功能:将范围
[first, last)
中的元素反转后复制到x
开始的位置。 - 参数:
BidIt first, BidIt last
:双向迭代器。OutIt x
:输出迭代器。
- 功能:将范围
partition
- 功能:将范围
[first, last)
中满足谓词pr
的元素放在不满足谓词的元素之前。 - 参数:
BidIt first, BidIt last
:双向迭代器。Pred pr
:一元谓词函数。
- 功能:将范围
stable_partition
- 功能:与
partition
类似,但保留相对顺序。 - 参数:
FwdIt first, FwdIt last
:前向迭代器。Pred pr
:一元谓词函数。
- 功能:与
sort
- 功能:对范围
[first, last)
中的元素进行升序排序。 - 参数:
RanIt first, RanIt last
:随机访问迭代器。
- 功能:对范围
sort
(带谓词)- 功能:按照谓词
pr
对范围[first, last)
中的元素排序。 - 参数:
RanIt first, RanIt last
:随机访问迭代器。Pred pr
:二元谓词函数。
- 功能:按照谓词
stable_sort
- 功能:稳定排序范围
[first, last)
中的元素,保留相等元素的相对顺序。 - 参数:
BidIt first, BidIt last
:双向迭代器。
- 功能:稳定排序范围
stable_sort
(带谓词)- 功能:按照谓词
pr
稳定排序。 - 参数:
BidIt first, BidIt last
:双向迭代器。Pred pr
:二元谓词函数。
- 功能:按照谓词
nth_element
- 功能:对范围
[first, last)
进行部分排序,使得nth
处的元素位于其最终位置。 - 参数:
RanIt first, RanIt nth, RanIt last
:随机访问迭代器。
- 功能:对范围
binary_search
- 功能:判断范围
[first, last)
中是否存在值val
。 - 参数:
FwdIt first, FwdIt last
:前向迭代器。const T& val
:要查找的值。
- 功能:判断范围
binary_search
(带谓词)- 功能:根据谓词
pr
判断范围[first, last)
中是否存在值val
。 - 参数:
FwdIt first, FwdIt last
:前
- 功能:根据谓词
向迭代器。
- const T& val
:要查找的值。
- Pred pr
:二元谓词函数。
merge
- 功能:将两个已排序的范围合并到一个新的范围中。
- 参数:
InIt1 first1, InIt1 last1
:第一个范围的输入迭代器。InIt2 first2, InIt2 last2
:第二个范围的输入迭代器。OutIt x
:输出迭代器。
merge
(带谓词)- 功能:根据谓词
pr
将两个已排序范围合并。 - 参数:
InIt1 first1, InIt1 last1
:第一个范围的输入迭代器。InIt2 first2, InIt2 last2
:第二个范围的输入迭代器。OutIt x
:输出迭代器。Pred pr
:二元谓词函数。
- 功能:根据谓词
max
- 功能:返回
x
和y
中较大的那个。 - 参数:
const T& x, const T& y
:两个待比较的值。
- 功能:返回
max
(带谓词)- 功能:根据谓词
pr
返回较大的值。 - 参数:
const T& x, const T& y
:两个待比较的值。Pred pr
:二元谓词函数。
- 功能:根据谓词
min
- 功能:返回
x
和y
中较小的那个。 - 参数:
const T& x, const T& y
:两个待比较的值。
- 功能:返回
min
(带谓词)- 功能:根据谓词
pr
返回较小的值。 - 参数:
const T& x, const T& y
:两个待比较的值。Pred pr
:二元谓词函数。
- 功能:根据谓词
仅供参考,可能有误