程序设计艺术(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:二元谓词函数。
- 功能:根据谓词
仅供参考,可能有误