1. 程式人生 > >STL——set(集合)

STL——set(集合)

#include <set>

set<int> s;

每個元素最多出現一次

成員函式:

begin()--返回指向第一個元素的迭代器;

clear()--清楚所有元素;

count()--返回某元素的個數;

empty()--如果為空返回true;

end()--返回最後一個元素的迭代器;

erase()--刪除集合中的某個鍵值的元素;

insert()--在集合中插入元素;

 size()--返回集合中的元素個數;

例題:(uva 10815-Andy's First Dictionary )

#include<bits/stdc++.h>
using namespace std;

int main()
{
    set<string> words;
    string s;
    while(cin>>s)
    {
        for(unsigned int i=0;i<s.length();i++)
        {
            if(isalpha(s[i]))
                s[i]=tolower(s[i]);
            else
                s[i]=' ';

        }
        stringstream ss(s);
        string buf;
        while(ss >> buf)
            words.insert(buf);

    }
    for(set<string>::iterator i=words.begin();i!=words.end();i++)
    {
        cout<<*i<<endl;
    }
    return 0;
}

相關推薦

單詞數 (STL set集合

任務 dsm inpu 排列 結束 -c ostream ret gin 單詞數 Problem Description lily的好朋友xiaoou333近期非常空。他想了一件沒有什麽意義的事情,就是統計一篇文章裏不同單詞的總數。以下你的任務是幫助xiaoou3

STL-set (集合)之刪除元素

set概述和vector、list不同,set、map都是關聯式容器。set內部是基於紅黑樹實現的。插入和刪除操作效率較高,因為只需要修改相關指標而不用進行資料的移動。  在進行資料刪除操作後,迭代器

STL——set(集合)

#include <set>set<int> s;每個元素最多出現一次成員函式:begin()--返回指向第一個元素的迭代器;clear()--清楚所有元素;count()--返回某元素的個數;empty()--如果為空返回true;end()--返回

STL set 集合裡面不能放結構體麼?

肯定可以,C++的設計哲學之一就是使得程式在對待自定義型別時和內建型別必須是一致的(甚至自定義型別的支援更好)。所以,肯定是你程式的問題,如下:《C++標準程式庫》中明確指出:“只要是assignable、copyable、comparable(根據某個排序準則)的型別T,

C++ STL Set 集合

class div 模板 enc 第一個元素 union inline std left 前言set是STL中的一種關聯容器。集合具有無序性,互異性等特點。熟練使用STL中的set模板類,可以比較簡單的解決一些編程問題。關聯容器:元素按照關鍵字來保存和訪問,STL中的map

C++ STL set集合

函數 太多的 c++ stl tro 展示 最小 容器 for it! 引入: 集合和映射也是兩個常用的容器。set就是數學上的集合——每個元素最多只出現一次。和sort一樣,自定義類型也可以構造set,但同樣必須定義“小於”運算符。 頭文件: #include<se

STL集合:set

集合:set        集合是常用的容器。set中的所有元素都會根據元素的建值自動排序,且每個元素最多中出現一次 注意: iterator是迭代器,是STL中的重要概念,類似於指標。   set 中各

離散數學-集合的交併差集運算--STL-set

程式碼其實很簡單,我們只需要知道set類的使用方法就可以了,比如迭代器的定義( set<T>::iterator it=a.begin() ),和簡單的insert函式插入,以及find函式找到時返回對應的迭代器,找不到時返回該set的end。 #include <iostre

C++STL學習——Set集合

簡單介紹 集合(Set)是一種包含已排序物件的關聯容器,其中所包含的元素是唯一的,集合中的元素按一定的順序排列。元素插入過程是按排序規則插入,所以不能指定插入位置。 set採用紅黑樹變體的資料結構實現,紅黑樹屬於平衡二叉樹。在插入操作和刪除操作上比vector快。 s

STL set集合) C++

set集合容器實現了紅黑樹(Red-Black Tree)的平衡二叉檢索樹的的資料結構,在插入元素時,它會自動調整二叉樹的排列,把該元素放到適當的位置,以確保每個子樹根節點的鍵值大於左子樹所有節點的鍵值

C++ STL 有關於SET集合部分 的自定義資料型別的排序 以及 pair的使用

#include<iostream> using namespace std; #include"set" //set集合容器的標頭檔案 #include<functional> //用於識別set從大到小中greater的識別 /*知識點集合*/

STL容器——集合set簡單總結

集合set: 有序儲存元素,預設從小到大。 不會有重複元素,相同元素存入集合set後也只有一個。 內部利用了紅黑樹,檢索、插入、刪除等操作效率高。 #include<set> usin

C++抽象程式設計——STL(5)——set集合的基本輸入輸出

the Set class 還有一個最有用的集合類,就是set(集合)類了,出口的方法如下圖,這個類我們用來模擬數學上的集合,也就是說這個類裡的元素是無序且其值只出現一次。set類在許多演算法應用中是極其有用的。所以我們應該從一些例項中去體驗和感受它們是怎麼工

C++ STL set集合

引入: 集合和對映也是兩個常用的容器。set就是數學上的集合——每個元素最多隻出現一次。和sort一樣,自定義型別也可以構造set,但同樣必須定義“小於”運算子。 標頭檔案: #include&l

c++ stl容器set成員函式介紹及set集合插入,遍歷等用法舉例

c++ stl集合set介紹    c++ stl集合(Set)是一種包含已排序物件的關聯容器。set/multiset會根據待定的排序準則,自動將元素排序。兩者不同在於前者不允許元素重複,而後者允許。 1) 不能直接改變元素值,因為那樣會打亂原本正確的順序,要改變元素值必須先刪除舊元素,則插入新元素 2

STL 演算法vector/set集合-交集,並集,差集,對稱差

針對這裡提及的四個集合運算必須特別注意: 1、第一個演算法需保證第一集合和第二集合有序,並從小到大排序,內部使用預設“<”操作符比較元素大小; 2、第二個演算法需保證第一集合和第二集合有序,排序方式參照Compare確定,內部使用Compare比較元素大小。 1 --

STL vector/set集合運算

經常用的集合運算有四種: 求交集  set_intersection(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()) 求並集  set_union(a.begin(),a.end(),b.begin(),

L2-005 集合相似度 (25 分) (STL——set

-h line pin scripts 正整數 判斷 gin can 們的 鏈接:https://pintia.cn/problem-sets/994805046380707840/problems/994805070149828608 題目: 給

set集合

pre stat ati spa 很快 允許 linked eset link HashSet:哈希表是通過使用稱為散列法的機制來存儲信息的,元素並沒有以某種特定順序來存放; LinkedHashSet:以元素插入的順序來維護集合的鏈接表,允許以插入的順序在集合中叠代;

【bzoj2333】[SCOI2011]棘手的操作 可並堆+STL-set

space efi ras 當前 ati blog log down ace 題目描述 有N個節點,標號從1到N,這N個節點一開始相互不連通。第i個節點的初始權值為a[i],接下來有如下一些操作: U x y: 加一條邊,連接第x個節點和第y個節點 A1 x v: 將