近期的知识点

一:
vector 中删除重复的元素:
    a.erase(unique(a.begin(), a.end()),a.end());
s格式符,用来输出一个字符串。有以下几种用法
    1.%s 输入字符串
    2.%ms 输出字符串占m列,如果字符串本身长度超过m,则可以超过m列,全数输出,若果字符串小于m,则左补空格
    3.%-ms 输出字符串占m列,如果字符串小于m,则字符串靠左,右补空格
    4.m.ns 输出占m列,但是只取字符串中的左端n个字符,这n个字符输入输出在m列的右列, 左补空格

二: 两个数异或等于0

三: npos可以表示string的结束位子,是string::type_size 类型的,也就是find()返回的类型。find函数在找不到指定值得情况下会返回string::npos
    str[i + 1].find(str[i]) == str[i + 1].npos

四: istringstream是一个比较有用的c++的输入输出控制类。

C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。


istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。


#include<iostream>  
#include<sstream>        //istringstream 必须包含这个头文件
#include<string>  
using namespace std;  
int main()  
{  
    string str="i an a boy";  
    istringstream is(str);  
    string s;  
    while(is>>s)  
    {  
        cout<<s<<endl;  
    }  
      

输出是:
i
am
a
boy

 

针对第四个知识点的例题 :

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072

Problem Description

lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

Input

有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output

每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input

you are my friend #

Sample Output

4

 

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <set>
#include <sstream>
 
using namespace std;
 
int main(){
    string str1,str2;
    while(getline(cin,str1)){
        if(str1 == "#")  break;
        istringstream stream(str1);
        set<string>Set;
        while(stream>>str2){
            Set.insert(str2);
        }
        cout<<Set.size()<<endl;
    }
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值