泛型算法例子

原创 2015年07月08日 09:37:07
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<numeric>

using namespace std;

void output(string s)
{
	cout << s << " ";
}

void elimDups(vector<string> &words)//删除相同单词,并进行排序
{
	sort(words.begin(), words.end());//排序
	vector<string> end_unique_words = unique(words.begin(), words.end());   //把重复元素移到后面,并且返回去重后最后一个元素的地址
	words.erase(end_unique_words, words.end());//删除重复
}

void biggest(vector<string> &words, string::size_type sz)
{
	elimDups(words);

	stable_sort(words.begin(), words.end(),
		[](const string &a, const string &b)
			{return a.size() < b.size(); });//按长度排列

	auto wc = find_if(words.begin(), words.end(), [sz](const string &a){return a.size() >= sz; });//获取比指定长度长的单词

	auto count = words.end() - wc;
	cout << count << endl;
	
	/*for_each(wc, words.end(),
		[](const string &s){cout << s << " "; });*/

	for_each(wc, words.end(),output);

	cout << endl;
}
void main()
{
	vector<string> vec;

	cout << "请输入一行英文(输入Ctrl+z结束):" << endl;
	string str;
	while (cin>>str && (str!="EOF"))
	{
		vec.push_back(str);
	}
	
	/*vec.push_back("sdf");
	vec.push_back("dsfd");
	vec.push_back("fgf");
	vec.push_back("gfgf");
	vec.push_back("sdf");
	vec.push_back("asd");*/

	biggest(vec, 4);
	//for_each(vec.begin(), vec.end(), output);
}

Java泛型---泛型方法和泛型类介绍及实例

Java 泛型 如果我们只写一个排序方法,就能够对整形数组、字符串数组甚至支持排序的任何类型的数组进行排序,这该多好啊。 Java泛型方法和泛型类支持程序员使用一个方法指定一组相关方法,或...
  • wendrewshay
  • wendrewshay
  • 2014年11月09日 21:54
  • 2576

Java 泛型类 以及 泛型类获取子类的具体参数类型 以及 获取子类型具体参数的实例

前言: 要点都在代码注释中 1、泛型类 GenericInterface package com.demo.generic; import java.lang.reflect.Parameter...
  • bestcxx
  • bestcxx
  • 2017年01月24日 16:53
  • 2173

Unity3d中 C# 单例类 <泛型>

此篇文章是以Unity3d 中 使用C#为语言为前提的. 1. 在C#中使用泛型单利的话, 我们可以非常简单的用好几种不同方式去实现. 比如写一个我经常写的手法: public class...
  • c325061100
  • c325061100
  • 2013年01月16日 17:06
  • 2719

C++ Primer学习笔记——$11 泛型算法

  • 2009年04月26日 12:47
  • 118KB
  • 下载

c++ primer 泛型算法 经典

  • 2009年08月08日 08:47
  • 7KB
  • 下载

最长公共子序列的泛型算法

  • 2010年03月24日 13:22
  • 91KB
  • 下载

《c++ primer》第10章 泛型算法 学习笔记

概述:大多数算法都定义在头文件#include,标准库还在#include定义了一组数值泛型算法。 泛型算法本身不会执行容器操作,它们只会运行在迭代器之上,执行迭代器的操作 结论:算法永远不会改变底层...
  • wwh578867817
  • wwh578867817
  • 2014年12月03日 21:25
  • 1715

C++ Primer 学习笔记:泛型算法入门 参数绑定bind

bind函数的基本介绍bind函数的最根本的作用就是可以把一个参数较多的函数给封装成参数较少的函数,因此对于上述find_if函数的问题,我们可以自定义一个含俩个参数的函数,然后通过bind函数进行封...
  • JackZhang_123
  • JackZhang_123
  • 2018年01月02日 10:24
  • 33

STL-泛型算法(前篇)

泛型算法(generic algorithm)      前言:在网上找了一堆C++泛型算法的资料,总感觉看起来很没有条理,于是乎搬出书架上的. 重温并且全面的总结一下知识点. 来自第十章 泛型算...
  • c18219227162
  • c18219227162
  • 2015年12月10日 22:46
  • 169

C++ 对bitset使用泛型算法

泛型算法是C++的一大特色,而bitset
  • wk89665944
  • wk89665944
  • 2014年11月14日 10:56
  • 432
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:泛型算法例子
举报原因:
原因补充:

(最多只允许输入30个字)