STL 的题目练习(HDU1263)(HDU1075)(HDU 1004)(ZOj 2724)

  现在STL对我熟了,我对它还不熟,加油啊

  这种循环输入的不清空容器则要在主函数中定义……

 map容器

运用STL,由于map存储是按KEY值的字母顺序排序,所以这里呢省去了排序的步骤

HDU 1263

#include
#include
#include
#include
using namespace std;
int main()
{
    map > p;
    map q;
    map >::iterator i;
    map::iterator j;
    int n,m,t;
    string str1,str2;
    cin>>n;
    while(n--)
    {
        p.clear();
        q.clear();
        cin>>m;
        while(m--)
        {
            cin>>str1>>str2>>t;
            p[str2][str1]+=t;
        }
        for(i=p.begin();i!=p.end();i++)
        {
            cout<first<second;
            for(j=q.begin();j!=q.end();j++)
                cout<<"   |----"<first<<"("<second<<")"<
HDU1075

  这个题目是对字符串的处理(用字典树也可以),具体就是会判断初始终止条件,熟练运用map容器,但是显然我还做不到,会继续学习STL,我要和你混熟

#include
#include
#include
using namespace std;
//const int N 3005;
map mapp;
bool Char(char ch)
{
    if(ch>='a'&&ch<='z')
        return true;
    return false;
}
int main()
{
    string str1,str2;
    cin>>str1;//忽略start
    while(cin>>str1)
    {
        if(str1=="END") break;
        cin>>str2;
        mapp[str2]=str1;
    }
    cin>>str1;
    getline(cin,str1);
    while(getline(cin,str1))
    {
        str2="";//空
        if(str1=="END")  break;
        for(int i=0;i

HDU 1004(非STL解法见1004传送门)

#include
#include
#include
using namespace std;
int main()
{
    int n;
    string str;
    while(cin>>n,n)
    {
        mapmapp;
        map:: iterator pr;
        for(int i=0;i>str;
            mapp[str]++;//将元素存入map容器中
        }
        int maxn=0;
        for(pr = mapp.begin();pr != mapp.end();pr++)
        {
            if(pr->second > maxn)
            {
                maxn = pr->second;
                str = pr->first;
            }
        }
        cout<

ZOJ 2724

用结构体存储各元素,优先队列存储存储结构体

#include//zoj 2724
#include
#include
#include
using namespace std;
struct Compare
{
    char str[30];
    int m;
    int pr;//优先级
    friend bool operator <(Compare a,Compare b)
    {
        return a.pr>b.pr;
    }
};
priority_queueit;
int main()
{
    Compare pluss;
    string str1;
    while(cin>>str1)
    {
        if(str1=="GET")
        {
            if(it.empty())
            {
                cout<<"EMPTY QUEUE!"<



你可能感兴趣的:(C/C++)