mysql数据类型和用法
时间:2022-03-10 17:04
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<stack>
using namespace std;
struct node
{
char x,y;
};
bool cmp(node a,node b)
{
if(a.x==b.x) return true;
if(a.y==b.y) return true;
return false;
}
int main(){
while(1)
{
vector<stack<node > >card;//定义vector(容器),包含的元素类型为stack<node>;
char temp[3];
scanf("%c",&temp[0]);
if(temp[0]==‘#‘) break;
scanf("%c",&temp[1]);
stack<node > p;
node c;
c.x=temp[0];c.y=temp[1];
p.push(c);
card.push_back(p);//把栈存入card容器。
for(int i=1;i<52;i++)
{
getchar();
scanf("%c%c",&temp[0],&temp[1]);
node c;
c.x=temp[0];c.y=temp[1];
stack<node > t;
t.push(c);
card.push_back(t);
}
/* int len=card.size();
for(int i=0;i<len;i++)
{
cout<<card[i].top()<<endl;
}
getchar();*/
int len=card.size();//求容器的大小
for(int i=0;i<len;i++)
{
int j=i;
if(j-3>=0){
if(cmp(card[j-3].top(),card[j].top())){ //容器也可像数组一样通过下标来使用。
card[j-3].push(card[j].top());
card[j].pop();
if(card[j].empty())
{
card.erase(card.begin()+j);//删除某个位置的栈,参数必须为指向该位置的指针
len=card.size();
}
i=-1;
continue;
}
}
if(j-1>=0){
if(cmp(card[j-1].top(),card[j].top())){
card[j-1].push(card[j].top());
card[j].pop();
if(card[j].empty())
{
card.erase(card.begin()+j);
len=card.size();
}
i=-1;
continue;
}
}
}
int l=card.size();
if(l>1)
{
printf("%d piles remaining:",l);
for(int i=0;i<l;i++)
printf(" %d",card[i].size());
}
else {
printf("%d pile remaining:",l);
printf(" %d",card[0].size());
}
printf("\n");
getchar();
}
return 0;
}
mysql数据类型和用法,布布扣,bubuko.com