算法入门经典-第五章 例题5-3 安迪的第一个字典

学会了一点<set>的使用,而且知道了在<set>中原来会自动按从小到大的顺序排序。知道了这些,这个题就简单了,只需读入,之后再用迭代器访问着输就行了

另外,这个题需转换成小写字母,之后再用
        stringstream ss(s);
        while (ss>>buf) dict.insert(buf);插入就行了
 
知识点:

1.学会运用set容器;(有个小知识点,set容器,元素只能出现一次,并且插入可以从小到大排序)

2.学习字符函数库中常用的函数

3.学会stringstream(可参考这篇博文:http://blog.csdn.net/xw20084898/article/details/21939811

4.最后运行记得是  在空行  ctrl+z +回车。(至于为什么,参考博文:http://blog.csdn.net/kevin_ut/article/details/8576740

 

set是一个集合 和康托前辈的一样 集合中的元素不重复 且集合中的元素是有序的(自动有序化) TY菌介绍说其内部实质是一个平衡树

set不是数组 只能通过迭代器(iterator)把里面的元素倒出来 迭代器相当于是指针 扫描的是地址 因此输出的时候需要用*variation

#include <cstdio>  
#include <cstring>  
#include <set>  
#include <iostream>  
#include <sstream>  
using namespace std;  
set<int> dict;  
int main()  
{  
    //string s,buf;  
    int a;
    while (cin>>a)  
    {  
        for (int i=0;i<1;i++)  
         //   if (isalpha(s[i])) s[i]=tolower(s[i]);  //isalpha()判断是否是字母 如果是就用头tolower()转换成小写 否则就转为空格 这样是为了字符串流重读入的时候能够把空格去掉
            //else s[i]=' ';  
       // stringstream ss(a);  
    //    while (ss>>buf) 
	dict.insert(a);  
    }  
    set <int> ::iterator it;  
    for (it=dict.begin();it!=dict.end();it++)  
        cout<<*it<<endl;  
    return 0;  
}  

具体可见http://blog.csdn.net/ametake

posted @ 2017-08-14 10:07  于繁华求淡然  阅读(315)  评论(0编辑  收藏  举报