1. 程式人生 > >char型別的字串比較,和vector的初次見面

char型別的字串比較,和vector的初次見面

程式碼如下:
//在程式碼的後面有//的地方是本人應該注意的地方
#include<cstdio>
#include<vector>
#include<iostream>
#include<cstring>
using namespace std;

const int maxn = 30;
int n;
vector<int> pile[maxn];

void find_block(int a,int& p,int& h)
{
    for(p=0;p<n;p++)
    {
        for(h=0;h<pile[p].size();h++)
        {
            if
(pile[p][h]==a) return; } } } void clear_above(int p,int h) { for(int i=h+1;i<pile[p].size();i++) { int b=pile[p][i]; pile[b].push_back(b); } pile[p].resize(h+1); } void pile_onto(int p,int h,int p2) { for(int i=h;i<pile[p].size();i++) { pile[p2].push_back(pile[p][i]); } pile[p].resize(h); } void
print() { for(int i=0;i<n;i++) { printf("%d:",i); for(int j=0;j<pile[i].size();j++) { printf(" %d",pile[i][j]); } printf("\n"); } } int main() { int a,b; scanf("%d",&n); char s1[10],s2[10]; //1 for(int i=0
;i<n;i++) { pile[i].push_back(i); } while(~scanf("%s",s1)) //2 { if(s1[0]=='q'){ //3 print(); //4 break; } scanf("%d %s %d",&a,s2,&b); int pa,pb,ha,hb; find_block(a,pa,ha); find_block(b,pb,hb); if(pa==pb) continue; if(strcmp(s2,"onto")==0) //5,字串比較用strcmp,並且用==,在<cstring>標頭檔案裡面 clear_above(pb,hb); if(strcmp(s1,"move")==0) //5與上問題相同 clear_above(pa,ha); pile_onto(pa,ha,pb); } return 0; }

今天一個上午,男神就教了好幾套標頭檔案,怕是有的時間吃了。