Andy's First Dictionary

本文介绍了一种使用C++ STL中的set数据结构来处理字符串,提取并去除重复单词的方法,并最终按字典顺序输出这些单词。该方法适用于解决特定类型的编程竞赛题目。

题目链接:https://vjudge.net/contest/177033#problem/B

题意:给若干行字符串,提取出所有单词并去掉重复的,最后按字典顺序输出单词

题解:可以利用 STL 中的 set,找到单词即插入 set 中,则 set 自动排序这些单词,最后通过迭代器按顺序输出单词即可。

#include<iostream>
#include<sstream>
#include<set>
#include<string>
using namespace std;
//set是一个集合 其名为dict 类型是string 集合中的元素不重复 且集合中的元素是有序的(自动有序化)
set<string> dictionary; 
int main(){
	string s;
	string buf;
	while(cin>>s){
		for(int i=0;i<s.size();i++)
			//isalpha()判断是否是字母 如果是就用头tolower()转换成小写 否则就转为空格 这样是为了字符串流重读入的时候能够把空格去掉
			if(isalpha(s[i]))
				s[i]=tolower(s[i]);
			else
				s[i]=' ';
		stringstream stream;
		//stringstream对象的构造和析构函数通常是非常耗CPU,所以如果重复使用时,每次转换前要使用clear()
		stream.clear();
		//<< 输入 
		stream<<s;
		//>> 读取 
		while(stream>>buf)
			//将buf插入已经集合中
			dictionary.insert(buf); 
		} 
		//set不是数组 只能通过迭代器(iterator)把里面的元素倒出来
		//迭代器iterator相当于是个类型 it是一个变量
		set<string>::iterator it;
		// 迭代器相当于是指针 从开始扫到结尾 由于扫描的是地址 因此输出的时候需要用 *it
		for(it=dictionary.begin();it!=dictionary.end();++it)
			cout<<*it<<endl;
		return 0;
}
为了查找与测绘遥感相关的SCI期刊列表,可以通过学术搜索引擎或访问特定的数据库来获得最新的信息。通常这些资源会定期更新以反映最新收录情况。 些常用的搜索方式包括: 查阅Web of Science (WOS) 数据库 这是最直接的方法之,因为Science Citation Index(SCI)正是由该数据库维护。可以在其中设置关键词为"remote sensing", "surveying and mapping" 或者更具体的主题术语,并选择仅显示被SCI索引的文章和期刊。 利用Google Scholar 虽然不是专门针对SCI期刊,但可以找到很多高影响力的测绘遥感类文章及其发表刊物的信息。从这里也可以了解到哪些是活跃且受认可的研究领域内的出版物。 参考Journal Citation Reports (JCR) 这是个评估科学和技术期刊影响力的重要工具。通过查看影响因子和其他指标,可以帮助确定哪些测绘遥感领域的期刊最具权威性并且属于SCI范畴。 咨询图书馆员或专业人士 大学或研究机构的专业人员能够提供指导和支持,帮助定位最适合需求的具体期刊名称及详情。 订阅行业通讯和服务 某些服务如Elsevier's Scopus也会报告关于各个学科顶级期刊的消息,保持关注可以获得及时的通知。 以下是几个知名的测绘遥感相关SCI期刊的例子: - Remote Sensing of Environment - IEEE Transactions on Geoscience and Remote Sensing - ISPRS Journal of Photogrammetry and Remote Sensing - International Journal of Applied Earth Observation and Geoinformation 请注意,实际的SCI期刊名单可能会随着时间而变化,因此建议总是使用最新的在线资源来进行确认。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值