#include <algorithm>

1. max_element(v.begin(), v.end());

  注意,所有的区间全部是半开区间,如果数组包含20~40,通过find找出25,和35的positon,但是max_element(pos25, pos35)得到的是34.

2. min_element(v.begin(), v.end());

3. find(v.begin(), v.end(), 3);

4. sort(v.begin(), v.end());

5. reverse(pos, v.end();

6. copy(v1.begin(), v1.end(), v2.begin());

7. remove(v1.begin(), v1.end(), 3);

8. for_each()

代码:

 /* algorithm.cc
* 2014/09/02 update
*/
#include <iostream>
#include <vector>
#include <list>
#include <algorithm>
#include <iterator>
using namespace std; void print(int elem) {
cout << elem << endl;
} int main() {
vector<int> v;
vector<int>::iterator pos; for(int i = ; i >= ; i--)
v.push_back(i); //max_element
pos = max_element(v.begin(), v.end());
cout << "the max element is: " << *pos << endl;
//min_element
pos = min_element(v.begin(), v.end());
cout << "the min element is: " << *pos << endl; //sort
sort(v.begin(), v.end()); //find
pos = find(v.begin(), v.end(), ); //reverse
reverse(pos, v.end()); for(pos = v.begin(); pos != v.end(); pos++)
cout << "Content of vector: " << *pos << " " << endl; //copy
vector<int> v2;
vector<int>::iterator pos1; v2.resize(v.size());
copy(v.begin(), v.end(), v2.begin());
cout << "Pre:" << endl;
copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " ")); //remove
vector<int>::iterator end = remove(v2.begin(), v2.end(), );
cout << endl << "After remove(v2.begin(), v2.end(), 5) : " << endl;
copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " "));
v2.erase(end, v2.end());
cout << endl << "After erase(end, v2.end()) : " << endl;
copy(v2.begin(), v2.end(), ostream_iterator<int>(cout, " "));
cout << endl;
//也可以使用v2.erase(remove(v2.begin(), v2.end(), 5), v2.end())) //for_each()
cout << "cout from for_each():" << endl;
for_each(v2.begin(), v2.end(), print); return ;
}

输出:

$ ./a.exe
the max element is:
the min element is:
Content of vector:
Content of vector:
Content of vector:
Content of vector:
Content of vector:
Content of vector:
Pre: After remove(v2.begin(), v2.end(), ) : After erase(end, v2.end()) : cout from for_each():

STL-算法的更多相关文章

  1. STL算法

    STL算法部分主要由头文 件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包含头文件<algorit ...

  2. 【STL源码学习】STL算法学习之四

    排序算法是STL算法中相当常用的一个类别,包括部分排序和全部排序算法,依据效率和应用场景进行选择. 明细: sort 函数原型: template <class RandomAccessIter ...

  3. 【STL源码学习】STL算法学习之三

    第一章:前言 数量不多,用到的时候会很爽. 第二章:明细 STL算法中的又一个分类:分割:将已有元素按照既定规则分割成两部分.  is_partitioned 函数原型: template <c ...

  4. 【STL源码学习】STL算法学习之二

    第一章:前言 学习笔记,记录学习STL算法的一些个人所得,在以后想用的时候可以快速拾起. 第二章:明细 copy 函数原型: template <class InputIterator, cla ...

  5. 【转】三十分钟学会STL算法

    转载自: http://net.pku.edu.cn/~yhf/UsingSTL.htm 这是本小人书.原名是<using stl>,不知道是谁写的.不过我倒觉得很有趣,所以化了两个晚上把 ...

  6. random_shuffle (stl算法)打乱顺序 - 飞不会的日志 - 网易博客

    random_shuffle (stl算法)打乱顺序 - 飞不会的日志 - 网易博客 random_shuffle (stl算法)打乱顺序 2012-03-31 10:39:11|  分类: 算法 | ...

  7. STL源代码分析——STL算法remove删除算法

    前言 因为在前文的<STL算法剖析>中,源代码剖析许多.不方便学习,也不方便以后复习,这里把这些算法进行归类.对他们单独的源代码剖析进行解说.本文介绍的STL算法中的remove删除算法. ...

  8. STL源代码分析——STL算法merge合并算法

    前言 因为在前文的<STL算法剖析>中.源代码剖析许多.不方便学习.也不方便以后复习,这里把这些算法进行归类.对他们单独的源代码剖析进行解说.本文介绍的STL算法中的merge合并算法. ...

  9. STL源代码分析——STL算法sort排序算法

    前言 因为在前文的<STL算法剖析>中,源代码剖析许多,不方便学习,也不方便以后复习.这里把这些算法进行归类,对他们单独的源代码剖析进行解说.本文介绍的STL算法中的sort排序算法,SG ...

  10. 变易算法 - STL算法

    欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/mutating-algorithms.h ...

随机推荐

  1. cublas相关的知识

    下面链接给出了一个例子,怎么用cublas进行矩阵的运算提速,也说明了cublas的大致的使用方法. http://www.cnblogs.com/scut-fm/p/3756242.html cub ...

  2. Object Pascal 方法与技巧

    4 方法与技巧 4.1 设置代码模板 代码模板是Delphi 的代码感知特性的一种,通过它可以快速.高效和正确地输入代码.代码模板将一些常用的语句块保存在模板中,然后程序员只要在代码编辑器中按下“Ct ...

  3. html中盒子模型立体结构图

    边框(border),位于盒子的第一层..元素内容(content).内边距(padding),两者同位于第二层..背景图(background-image),位于第三层..背景色(backgroun ...

  4. x^y=(x&~y)|(~x&y)证明

    我见过最棒的证明是文氏图:(首先要知道二元布尔代数是集合的特殊情况,所以把X和Y当作两个集合,结论成立,那么在二元布尔代数里面也成立.)左边的圈是X,右边的圈是Y.如果是OR 也就是取或,中间的白色的 ...

  5. 微信小程序初体验(上)

    版权声明:本文由练小习原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/204 来源:腾云阁 https://www.qclo ...

  6. Unity 5 中的全局光照技术详解(建议收藏)

    本文整理自Unity全球官方网站,原文:UNITY 5 - LIGHTING AND RENDERING (文章较长,请耐心阅读)简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法, ...

  7. 创建和使用Windows静态链接库

    首先明确这篇文章的目的,我希望大家能够通过这篇文章了解一下如何在实际工作中创建和使用Windows平台下的静态链接库.关于链接库的概念,希望大家参考维基百科"Library"词条( ...

  8. css3实现超过两行文字,超出用三个点显示(兼容性不行,仅供学习)

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...

  9. Python 练习 12

    #!/usr/bin/python # -*- coding: UTF-8 -*- year = int(raw_input('year:\n')) month = int(raw_input('mo ...

  10. [BI基础] ( 商务智能 ) 简介

    一.什么是BI BI(商务智能)通过给海量云数据制定“游戏规则”(对不同主题进行不同分析),将分散的数据进行搜集.整合.清理和诊断,借助一定的分析手段,进而将数据转化为信息和知识,快速准确的提供报表并 ...