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

本文详细介绍了C++标准库中的set容器的使用方法,包括如何利用set自动排序及去重的特点。并通过实例展示了如何将字符串转换为小写字母并使用stringstream进行处理,最后通过迭代器遍历输出set中的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

4.最后运行记得是  在空行  ctrl+z +回车。(至于为什么,参考博文:http://blog.youkuaiyun.com/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.youkuaiyun.com/ametake

转载于:https://www.cnblogs.com/is-Tina/p/7356296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值