C++<Algorithm>学习
2016-03-27 19:21
239 查看
for_each(iter.begin(), iter.end(), func)
把*iter作为func的参数,对每个*iter做func操作
( 也可以是数组for_each(a, a+5, func) )
find(iter.begin(), iter.end(), value)
寻找value,返回指向value的迭代器,没找到指向末尾
( 也可以是数组find(a, a+5, v) )
find_if(iter.begin(), iter.end(), func)
寻找符合func条件的元素,返回指向该元素的迭代器,没找到指向末尾 func必须返回true或false
( 也可以是数组find(a, a+5, func) )
find_end(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现最后一次的位置,成功返回指向最后一次位置的首地址,没找到指向iter1的end
( 也可以是数组find(a, a+5, b, b+2) )
find_first_of(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
找iter2的(任何)元素最先在iter1中出现的位置,成功返回iter1中该元素的位置,失败返回iter1的end
(里面的迭代器和数组可以互换)
adjacent_find (iter.begin(), iter.end())
在iter中找最先连续出现相同元素的位置,失败返回iter的end
count (iter.begin(), iter.end(), value)
在iter中出现的次数
count_if(iter.begin(), iter.end(), func)
在iter中寻找满足func条件的元素的个数,func必须返回true或false
search(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现第一次的位置,成功返回指向第一次位置的首地址,没找到指向iter1的end
( 也可以是数组search(a, a+5, b, b+2) )
search_n (iter.begin(), iter.end(), n,value)
寻找连续n次出现value的我izhi,返回指向value的迭代器,没找到指向末尾
( 也可以是数组search_n (a, a+5, n, v) )
sort、stable_sort的区别是stable_sort是稳定排序
//下面四个函数都是在已经排好序的序列上进行操作的
lower_bound:Return iterator to lower bound of equal_range
upper_bound:Return iterator to upper bound of equal_range
equal_range:Get subrange of equal elements
binary_search:Test if value exists in sorted sequence,return bool
min_element(iter.begin(), iter.end()):返回最小元素的位置
max_element(iter.begin(), iter.end()):返回最大元素的位置
( 也可以是数组)
bool next_permutation (iter.begin(), iter.end()):更大的排列,如果当前是最大排列,下一个就是最小的排列,返回false,其余返回true
bool prev_permutation (iter.begin(), iter.end()):更小的排列,如果当前是最小排列,下一个就是最大的排列,返回false,其余返回true
lexicographical_compare(iter1.begin(), iter1.end(), iter2.begin(), iter2.end()):字典序比较,iter1<iter2返回true 复杂度是线性的
( 也可以是数组)
for_each(iter.begin(), iter.end(), func)
把*iter作为func的参数,对每个*iter做func操作
( 也可以是数组for_each(a, a+5, func) )
find(iter.begin(), iter.end(), value)
寻找value,返回指向value的迭代器,没找到指向末尾
( 也可以是数组find(a, a+5, v) )
find_if(iter.begin(), iter.end(), func)
寻找符合func条件的元素,返回指向该元素的迭代器,没找到指向末尾 func必须返回true或false
( 也可以是数组find(a, a+5, func) )
find_end(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现最后一次的位置,成功返回指向最后一次位置的首地址,没找到指向iter1的end
( 也可以是数组find(a, a+5, b, b+2) )
find_first_of(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
找iter2的(任何)元素最先在iter1中出现的位置,成功返回iter1中该元素的位置,失败返回iter1的end
(里面的迭代器和数组可以互换)
adjacent_find (iter.begin(), iter.end())
在iter中找最先连续出现相同元素的位置,失败返回iter的end
count (iter.begin(), iter.end(), value)
在iter中出现的次数
count_if(iter.begin(), iter.end(), func)
在iter中寻找满足func条件的元素的个数,func必须返回true或false
search(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现第一次的位置,成功返回指向第一次位置的首地址,没找到指向iter1的end
( 也可以是数组search(a, a+5, b, b+2) )
search_n (iter.begin(), iter.end(), n,value)
寻找连续n次出现value的我izhi,返回指向value的迭代器,没找到指向末尾
( 也可以是数组search_n (a, a+5, n, v) )
sort、stable_sort的区别是stable_sort是稳定排序
//下面四个函数都是在已经排好序的序列上进行操作的
lower_bound:Return iterator to lower bound of equal_range
upper_bound:Return iterator to upper bound of equal_range
equal_range:Get subrange of equal elements
binary_search:Test if value exists in sorted sequence,return bool
min_element(iter.begin(), iter.end()):返回最小元素的位置
max_element(iter.begin(), iter.end()):返回最大元素的位置
( 也可以是数组)
bool next_permutation (iter.begin(), iter.end()):更大的排列,如果当前是最大排列,下一个就是最小的排列,返回false,其余返回true
bool prev_permutation (iter.begin(), iter.end()):更小的排列,如果当前是最小排列,下一个就是最大的排列,返回false,其余返回true
lexicographical_compare(iter1.begin(), iter1.end(), iter2.begin(), iter2.end()):字典序比较,iter1<iter2返回true 复杂度是线性的
( 也可以是数组)
for_each(iter.begin(), iter.end(), func)
把*iter作为func的参数,对每个*iter做func操作
( 也可以是数组for_each(a, a+5, func) )
find(iter.begin(), iter.end(), value)
寻找value,返回指向value的迭代器,没找到指向末尾
( 也可以是数组find(a, a+5, v) )
find_if(iter.begin(), iter.end(), func)
寻找符合func条件的元素,返回指向该元素的迭代器,没找到指向末尾 func必须返回true或false
( 也可以是数组find(a, a+5, func) )
find_end(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现最后一次的位置,成功返回指向最后一次位置的首地址,没找到指向iter1的end
( 也可以是数组find(a, a+5, b, b+2) )
find_first_of(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
找iter2的(任何)元素最先在iter1中出现的位置,成功返回iter1中该元素的位置,失败返回iter1的end
(里面的迭代器和数组可以互换)
adjacent_find (iter.begin(), iter.end())
在iter中找最先连续出现相同元素的位置,失败返回iter的end
count (iter.begin(), iter.end(), value)
在iter中出现的次数
count_if(iter.begin(), iter.end(), func)
在iter中寻找满足func条件的元素的个数,func必须返回true或false
search(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现第一次的位置,成功返回指向第一次位置的首地址,没找到指向iter1的end
( 也可以是数组search(a, a+5, b, b+2) )
search_n (iter.begin(), iter.end(), n,value)
寻找连续n次出现value的我izhi,返回指向value的迭代器,没找到指向末尾
( 也可以是数组search_n (a, a+5, n, v) )
sort、stable_sort的区别是stable_sort是稳定排序
//下面四个函数都是在已经排好序的序列上进行操作的
lower_bound:Return iterator to lower bound of equal_range
upper_bound:Return iterator to upper bound of equal_range
equal_range:Get subrange of equal elements
binary_search:Test if value exists in sorted sequence,return bool
min_element(iter.begin(), iter.end()):返回最小元素的位置
max_element(iter.begin(), iter.end()):返回最大元素的位置
( 也可以是数组)
bool next_permutation (iter.begin(), iter.end()):更大的排列,如果当前是最大排列,下一个就是最小的排列,返回false,其余返回true
bool prev_permutation (iter.begin(), iter.end()):更小的排列,如果当前是最小排列,下一个就是最大的排列,返回false,其余返回true
lexicographical_compare(iter1.begin(), iter1.end(), iter2.begin(), iter2.end()):字典序比较,iter1<iter2返回true 复杂度是线性的
( 也可以是数组)
make_heap(iter.begin(), iter.end()):建立最大堆(可以传入第三个参数greater<T>() 构建最小堆)
push_heap(iter.begin(), iter.end()):往最大堆里面插入一个元素(可以传入第三个参数greater<T>() 表示往最小堆里面插入一个元素)
pop_heap(iter.begin(), iter.end()):将最大堆里面最大的元素删除(可以传入第三个参数greater<T>() 将最小堆里面最小的元素删除)
把*iter作为func的参数,对每个*iter做func操作
( 也可以是数组for_each(a, a+5, func) )
find(iter.begin(), iter.end(), value)
寻找value,返回指向value的迭代器,没找到指向末尾
( 也可以是数组find(a, a+5, v) )
find_if(iter.begin(), iter.end(), func)
寻找符合func条件的元素,返回指向该元素的迭代器,没找到指向末尾 func必须返回true或false
( 也可以是数组find(a, a+5, func) )
find_end(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现最后一次的位置,成功返回指向最后一次位置的首地址,没找到指向iter1的end
( 也可以是数组find(a, a+5, b, b+2) )
find_first_of(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
找iter2的(任何)元素最先在iter1中出现的位置,成功返回iter1中该元素的位置,失败返回iter1的end
(里面的迭代器和数组可以互换)
adjacent_find (iter.begin(), iter.end())
在iter中找最先连续出现相同元素的位置,失败返回iter的end
count (iter.begin(), iter.end(), value)
在iter中出现的次数
count_if(iter.begin(), iter.end(), func)
在iter中寻找满足func条件的元素的个数,func必须返回true或false
search(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现第一次的位置,成功返回指向第一次位置的首地址,没找到指向iter1的end
( 也可以是数组search(a, a+5, b, b+2) )
search_n (iter.begin(), iter.end(), n,value)
寻找连续n次出现value的我izhi,返回指向value的迭代器,没找到指向末尾
( 也可以是数组search_n (a, a+5, n, v) )
sort、stable_sort的区别是stable_sort是稳定排序
//下面四个函数都是在已经排好序的序列上进行操作的
lower_bound:Return iterator to lower bound of equal_range
upper_bound:Return iterator to upper bound of equal_range
equal_range:Get subrange of equal elements
binary_search:Test if value exists in sorted sequence,return bool
min_element(iter.begin(), iter.end()):返回最小元素的位置
max_element(iter.begin(), iter.end()):返回最大元素的位置
( 也可以是数组)
bool next_permutation (iter.begin(), iter.end()):更大的排列,如果当前是最大排列,下一个就是最小的排列,返回false,其余返回true
bool prev_permutation (iter.begin(), iter.end()):更小的排列,如果当前是最小排列,下一个就是最大的排列,返回false,其余返回true
lexicographical_compare(iter1.begin(), iter1.end(), iter2.begin(), iter2.end()):字典序比较,iter1<iter2返回true 复杂度是线性的
( 也可以是数组)
for_each(iter.begin(), iter.end(), func)
把*iter作为func的参数,对每个*iter做func操作
( 也可以是数组for_each(a, a+5, func) )
find(iter.begin(), iter.end(), value)
寻找value,返回指向value的迭代器,没找到指向末尾
( 也可以是数组find(a, a+5, v) )
find_if(iter.begin(), iter.end(), func)
寻找符合func条件的元素,返回指向该元素的迭代器,没找到指向末尾 func必须返回true或false
( 也可以是数组find(a, a+5, func) )
find_end(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现最后一次的位置,成功返回指向最后一次位置的首地址,没找到指向iter1的end
( 也可以是数组find(a, a+5, b, b+2) )
find_first_of(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
找iter2的(任何)元素最先在iter1中出现的位置,成功返回iter1中该元素的位置,失败返回iter1的end
(里面的迭代器和数组可以互换)
adjacent_find (iter.begin(), iter.end())
在iter中找最先连续出现相同元素的位置,失败返回iter的end
count (iter.begin(), iter.end(), value)
在iter中出现的次数
count_if(iter.begin(), iter.end(), func)
在iter中寻找满足func条件的元素的个数,func必须返回true或false
search(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现第一次的位置,成功返回指向第一次位置的首地址,没找到指向iter1的end
( 也可以是数组search(a, a+5, b, b+2) )
search_n (iter.begin(), iter.end(), n,value)
寻找连续n次出现value的我izhi,返回指向value的迭代器,没找到指向末尾
( 也可以是数组search_n (a, a+5, n, v) )
sort、stable_sort的区别是stable_sort是稳定排序
//下面四个函数都是在已经排好序的序列上进行操作的
lower_bound:Return iterator to lower bound of equal_range
upper_bound:Return iterator to upper bound of equal_range
equal_range:Get subrange of equal elements
binary_search:Test if value exists in sorted sequence,return bool
min_element(iter.begin(), iter.end()):返回最小元素的位置
max_element(iter.begin(), iter.end()):返回最大元素的位置
( 也可以是数组)
bool next_permutation (iter.begin(), iter.end()):更大的排列,如果当前是最大排列,下一个就是最小的排列,返回false,其余返回true
bool prev_permutation (iter.begin(), iter.end()):更小的排列,如果当前是最小排列,下一个就是最大的排列,返回false,其余返回true
lexicographical_compare(iter1.begin(), iter1.end(), iter2.begin(), iter2.end()):字典序比较,iter1<iter2返回true 复杂度是线性的
( 也可以是数组)
for_each(iter.begin(), iter.end(), func)
把*iter作为func的参数,对每个*iter做func操作
( 也可以是数组for_each(a, a+5, func) )
find(iter.begin(), iter.end(), value)
寻找value,返回指向value的迭代器,没找到指向末尾
( 也可以是数组find(a, a+5, v) )
find_if(iter.begin(), iter.end(), func)
寻找符合func条件的元素,返回指向该元素的迭代器,没找到指向末尾 func必须返回true或false
( 也可以是数组find(a, a+5, func) )
find_end(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现最后一次的位置,成功返回指向最后一次位置的首地址,没找到指向iter1的end
( 也可以是数组find(a, a+5, b, b+2) )
find_first_of(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
找iter2的(任何)元素最先在iter1中出现的位置,成功返回iter1中该元素的位置,失败返回iter1的end
(里面的迭代器和数组可以互换)
adjacent_find (iter.begin(), iter.end())
在iter中找最先连续出现相同元素的位置,失败返回iter的end
count (iter.begin(), iter.end(), value)
在iter中出现的次数
count_if(iter.begin(), iter.end(), func)
在iter中寻找满足func条件的元素的个数,func必须返回true或false
search(iter1.begin(), iter1.end(), iter2.begin(), iter2.end())
在iter1串中寻找iter2子串出现第一次的位置,成功返回指向第一次位置的首地址,没找到指向iter1的end
( 也可以是数组search(a, a+5, b, b+2) )
search_n (iter.begin(), iter.end(), n,value)
寻找连续n次出现value的我izhi,返回指向value的迭代器,没找到指向末尾
( 也可以是数组search_n (a, a+5, n, v) )
sort、stable_sort的区别是stable_sort是稳定排序
//下面四个函数都是在已经排好序的序列上进行操作的
lower_bound:Return iterator to lower bound of equal_range
upper_bound:Return iterator to upper bound of equal_range
equal_range:Get subrange of equal elements
binary_search:Test if value exists in sorted sequence,return bool
min_element(iter.begin(), iter.end()):返回最小元素的位置
max_element(iter.begin(), iter.end()):返回最大元素的位置
( 也可以是数组)
bool next_permutation (iter.begin(), iter.end()):更大的排列,如果当前是最大排列,下一个就是最小的排列,返回false,其余返回true
bool prev_permutation (iter.begin(), iter.end()):更小的排列,如果当前是最小排列,下一个就是最大的排列,返回false,其余返回true
lexicographical_compare(iter1.begin(), iter1.end(), iter2.begin(), iter2.end()):字典序比较,iter1<iter2返回true 复杂度是线性的
( 也可以是数组)
make_heap(iter.begin(), iter.end()):建立最大堆(可以传入第三个参数greater<T>() 构建最小堆)
push_heap(iter.begin(), iter.end()):往最大堆里面插入一个元素(可以传入第三个参数greater<T>() 表示往最小堆里面插入一个元素)
pop_heap(iter.begin(), iter.end()):将最大堆里面最大的元素删除(可以传入第三个参数greater<T>() 将最小堆里面最小的元素删除)
相关文章推荐
- C++复制构造函数
- [面试] C/C++ —— MFC(四)
- 蓝桥杯
- 一起talk C栗子吧(第一百三十回:C语言实例--C程序内存布局二)
- c语言运算符号的优先级
- c的free和c++的delete的区别
- Windows程序设计 VC++6.0开发环境熟悉
- 【c++】猴子选大王
- 深入理解C指针学习笔记之常量和指针(六)
- C++ 第二次上机实验(作业)
- c++第二次实验—2
- TOJ : 4014. Warm up 2
- C语言笔记(二)
- C++中的static关键字(杂谈)
- 利用命令模式模拟烤肉店点餐 C++
- 一些关于C++中static方法和static成员的个人认知
- c++上机作业-2
- 数组array和vector的比较
- C语言PIC32 serial bootloader和C#语言bootloader PC端串口通信程序
- C++作业2