zoukankan      html  css  js  c++  java
  • 2019/02/22关于上文的题解

    从上次的思路,换到容器去码代码,真的没有头绪,让人茫然失措,有点无所适从的感觉,看了各路神仙的讲解,都不是那么详细,有些小的方面没有提到,很难受,只能看着他们的文章,视频。一点一点的摸索。
    重要的一点 各大网站不认strlwr(),只能用tolower;
    或者 transform(strA.begin(), strA.end(), strA.begin(), ::tolower)

    今天的知识点
    迭代器
    类型iterator 名称 ps:map<string,string>::iterator;
    Typef map<char,string> cx; cx::iterator;
    Map指向value跟key mp->second mp->first;
    输出迭代器所指向的要用 *p;
    结构体插入map mp.insert(make_pair(ax.a,ax.b));

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<map>
    #include<set>
    #include<algorithm>
    using namespace std;
    struct cx{
    string a;			//定义一个结构体,重点不是放什么,而是为了对应map容器;
    string b;
    };
    typedef multimap<string,string>dx; //dx代表前面的一长串
    dx mp; //上面那一长串的类型的mp
    cx ax;	//cx数据类型的ax
    char d[30]; 	//为了转换大小的过度字符串
    set<string> ap;最后排序Value用的容器
    int main()
    {
        string c;
        while(cin>>c)
        {
            memset(d,0,sizeof(char)*30); //数组清零
            if(c=="#") break;
            ax.b=c;
            for(int i=0;i<c.size();i++)
            {
    
    
    
    
                d[i]=tolower(c[i]); //换成小写
            }
            //c=strlwr(d); 
            sort(d,d+c.size());  //将单词按照字典序排序
            ax.a=d;
            mp.insert(make_pair(ax.a,ax.b));  //插入multimap,a做key,b做value
        }
        dx::iterator p;
        dx::iterator q;
        for(p=mp.begin();p!=mp.end();++p)
        {
            q=++p;
            p--;										//这里查了相关资料没有找到可以指向迭代器下一位的方法;
            if(p->first==q->first)
            {
                mp.erase(p->first);		//eraser()函数回去掉所有value等与p->的value;
                p=mp.begin();
            }
        }
        for(p=mp.begin();p!=mp.end();++p)
        {
            ap.insert(p->second);		//将value插入set容器
        }
        for(set<string>::iterator c=ap.begin();c!=ap.end();c++)
        {
            cout<<*c<<endl;		//迭代输出
        }
        return 0;
    }
    
  • 相关阅读:
    API下载文件
    c# 测试网络连接
    C# Word 插入签名图片
    c# word文档合并
    c# 文件筛选
    e
    基本初等函数(Basic elementary function)
    前端性能优化学习
    解决点击穿透的最佳实践
    ObjectARX通过选定的实体获取所有组名示例
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/12799087.html
Copyright © 2011-2022 走看看