我是靠谱客的博主 受伤樱桃,最近开发中收集的这篇文章主要介绍给一副扑克牌,求最长的顺子,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include<iostream>
#include<vector>
#include <set>
#include <algorithm>
using namespace std;
using
std::random_shuffle;
struct Recv
{
int difference;
set<int>::iterator first;
set<int>::iterator last;
};
void Sort(int *arr, int len)
{
set<int>
myset(arr, arr + len);
Recv recv = { 0,myset.begin(),myset.begin() };
set<int>::iterator lt = myset.begin();
set<int>::iterator st = myset.begin();
if (st != myset.end() && (++st != myset.end()))
{
;
}
int i = 1;
for (; st != myset.end(); )
{
if ((*st - i) == *lt)
{
st++;
i++;
}
else if (recv.difference < i)
{
recv.first = lt;
recv.last = st;
recv.difference = i;
i = 1;
lt = st;
st++;
}
else
{
i = 1;
lt = st;
st++;
}
}
for (set<int>::iterator mt = recv.first; mt != recv.last; ++mt)
{
cout << *mt << " ";
}
cout << "size=" << recv.difference << endl;
cout << endl;
}
template<class T>//强大的仿函数
class display
{
public:
void operator()(const T& x)
{
cout << x << ' ';
}
};
void C()
{
vector<int> ve;
for (int i = 0; i < 20; ++i)
{
ve.push_back(i);
}
for_each(ve.begin(),ve.end(),display<int>());
cout << endl;
random_shuffle(ve.begin(),ve.end());
for_each(ve.begin(), ve.end(), display<int>());
}
void main()
{
//C();//忽略,只是为了练习一下random_shuffle函数
int arr[] = { 9,3,2,1,8,2,2,4,1,5,6,11};
int len = sizeof(arr) / sizeof(arr[0]);
Sort(arr, len);
}

最后

以上就是受伤樱桃为你收集整理的给一副扑克牌,求最长的顺子的全部内容,希望文章能够帮你解决给一副扑克牌,求最长的顺子所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部