zoukankan      html  css  js  c++  java
  • STL---基本算法---<stl_algobase.h>概述

    通过一个实例来说明这些算法的接口使用:

    #include <iostream>
    #include <algorithm>
    #include <functional>
    #include <vector>
    #include <cstring>
    using namespace std;
    template <class T>
    struct display{
    	void operator()(const T& x)const{
    		cout<<x<<" ";
    	}
    };
    int main()
    {
    	int ia[9]={0,1,2,3,4,5,6,7,8};
    	vector<int> iv1(ia,ia+5);
    	vector<int> iv2(ia,ia+9);
    	cout<<equal(iv1.begin(),iv1.end(),iv2.begin())<<endl;//1,true
    	
    	fill(iv1.begin(),iv1.end(),9);//区间全部填9
    	for_each(iv1.begin(),iv1.end(),display<int>());
    	cout<<endl;
    	
    	fill_n(iv1.begin(),3,7);
    	for_each(iv1.begin(),iv1.end(),display<int>());
    	cout<<endl;
    	
    	string s1[]={"jamie","jjHou","jason"};
    	string s2[]={"jamie","jjhou","jerry"};
    	cout<<lexicographical_compare(s1,s1+2,s2,s2+2)<<endl;
    	cout<<lexicographical_compare(s1,s1+2,s2,s2+2,greater<string>())<<endl;
    	 //字典序对比,s1小于s2 
    	return 0; 
    }
    

    在看下面一些算法:

    #include <iostream>
    #include <algorithm>
    #include <functional>
    #include <vector>
    #include <cstring>
    #include <set>
    #include <iterator> 
    using namespace std;
    template <class T>  //这是一个函数对象 
    struct display{
    	void operator()(const T& x)const{
    		cout<<x<<" ";
    	}
    };
    int main()
    {
    	int ia[]={0,1,2,3,4,5,6,6,6,7,8};
    	vector<int> iv(ia,ia+sizeof(ia)/sizeof(int));
    	cout<<count(iv.begin(),iv.end(),6)<<endl;//找出元素值为6的个数
    	cout<<count_if(iv.begin(),iv.end(),bind2nd(less<int>(),7))<<endl; 
    	cout<<*find_if(iv.begin(),iv.end(),bind2nd(greater<int>(),2))<<endl;
    	for_each(iv.begin(),iv.end(),display<int>());
    	cout<<endl;
    	reverse(iv.begin(),iv.end()); //逆序重排 
    	for_each(iv.begin(),iv.end(),display<int>());//输出每一个元素 
    	cout<<endl;
    	int ia2[]={0,1,2};
    	vector<int> iv2(ia2,ia2+3);
    	vector<int>::iterator ite=find_first_of(iv.begin(),iv.end(),iv2.begin(),iv2.end());
        //在第一个区间序列中查找第二序列中任意元素第一次出现的位置,返回该位置的迭代器 
    	while(ite!=iv.end())
    	{
    		cout<<*ite<<" ";
    		ite++;
    	}
    	return 0; 
    }
    


  • 相关阅读:
    IT经典书籍——Head First系列【推荐】
    IT经典书籍——Head First系列【推荐】
    使用JSP实现用户登录
    使用JSP实现用户登录
    【知乎精选】如何面试一个产品经理?如何判断一个产品经理是否是一个很牛的产品经理?
    淘宝API总结
    「用户标签」在数据库设计时应该如何存储?
    【爬虫集合】抖音API分析
    商业架构体系
    短视频带货
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3172447.html
Copyright © 2011-2022 走看看