编程为什么要立flag

flag这个词语的中文含义是“旗帜”的意思,也是编程代码里面经常会用到的一个词语,

在编程代码里面主要指的是某一件事情的判定依据。

也就是说flag指的是确定一件事情的结局的关键内容,

是这个结局比较直接的相关事情,立flag也就是触发了关键事情的意思。

例子

题目描述

蓝桥王国的每个快递都包含两个参数:1.快递单号 2.快递城市。

小李是蓝桥王国的一名快递员,每天的快递分拣让他苦不堪言。

于是他想要你帮他设计一个程序用于快递的分拣(将不同快递按城市信息分开)。



#include<iostream>
#include<vector>
using namespace std;

vector<string> city;     //     创建一个存放城市的容器 

vector<string> dig[1000];	// 	创建一个二维动态数组存放快递单号 vector本来就是一个数组,[] 
                              //又是一个数组,所以他本来就是一个二维数组,表示1000个vector dig

int Myfind(string s)		// 	定义一个功能函数来判断输入的城市是否已经存在 
{

    for(int i=0;i<city.size();i++)
    {
        if(city[i]==s) return i;	// 	循环遍历,如果输入的城市与数组中的相等,返回数组中的下标。 
    }

    return -1;
}
int main()
{

    int n;
    cin>>n;             //   输入城市的个数 
    for(int i=0;i<n;i++)
    {
        string d,c;
        cin>>d>>c;		// 	输入城市名称,快递单号 
        int flag=Myfind(c); // 判读城市是否存在 
        if(flag==-1){		// 	不存在 
            city.push_back(c); //  将城市添加到整个数组的最后面 
            dig[city.size()-1].push_back(d);// 	同时将对应的快递单号添加到与对应城市相同
											// 	的下标数组,因为数组从0开始,所以要减一。 

        }
        else  dig[flag].push_back(d); //   如果存在,直接把单号添加到对应下标 
    }
    for(int i=0;i<city.size();i++)
    {
        cout<<city[i]<<" "<<dig[i].size()<<endl;// 	输出城市,快递单号的个数 

        for(int j=0;j<dig[i].size();j++)
            cout<<dig[i][j]<<endl;		// 	输出快递单号 
    }
}

猜你喜欢

转载自blog.csdn.net/m0_59081230/article/details/123530894