C++:不重复单词

问题

使用vector和set添加不重复的单词.

C++.
image-2138

源代码

1.使用vector添加不重复的单词.
使用vector添加不重复的单词,比较麻烦,推荐是使用set.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*************************************************************************
    > File Name: test.11.8.cpp
    > Author: puruidong
    > Mail: 1@w1520.com
    > Created Time: 2014年06月30日
 ************************************************************************/

#include<iostream>
#include<vector>

using namespace std;

/******************************
 

    编写一个程序,在一个vector而不是一个set中保存不重复的单词。使用set的优点是什么.

 *******************************/


 int main()
 {
     vector<string> vec;
     string pa;
     cout << "使用vector保存不重复的单词,请输入单词:" << endl;
     bool check = false ;
     while(cin >> pa)
     {
         check = false;
         for(const auto &v : vec)
         {
             if(v==pa)
             {
                 check=true;
             }
         }
            if(!check)
             {
                 vec.push_back(pa);  
             }
     }
    cout << "***********************************" << endl;
     cout << "下面输出结果:" << endl;
     for(const auto &vc:vec)
     {
         cout << vc << endl;
     }
     return 0;
 }

2.set添加不重复单词.

推荐使用这种方式添加,因为set内保存的本身就属于不重复的元素.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/*************************************************************************
    > File Name: test.11.8.1.cpp
    > Author: puruidong
    > Mail: 1@w1520.com
    > Created Time: 2014年06月30日
 ************************************************************************/

#include<iostream>
#include<set>
using namespace std;

/********************************
 
    使用set添加元素.


 ****************************************/


 int main()
 {
     set<string> st;
     cout << "向set添加元素[不可重复]:" << endl;
     string pa;
     while(cin >> pa)
     {
         st.insert(pa);
     }
    cout << "****************************" << endl;
     cout << "下面输出添加的结果:" << endl;
     for(const auto &s:st)
     {
         cout << s << endl;
     }
     return 0;
 }