1. 程式人生 > >C++ 標準模板庫STL中set用法介紹

C++ 標準模板庫STL中set用法介紹

本文所介紹的std::set用法基於C++11,std::set定義於標頭檔案<set>中,其定義如下:

template<
    class Key,
    class Compare = std::less<Key>,
    class Allocator = std::allocator<Key>
> class set;

std::set 是關聯容器,含有 Key 型別物件的已排序集。用比較函式 Compare 進行排序。搜尋、移除和插入擁有對數複雜度。 set 通常以紅黑樹實現。其包含成員型別其成員函式如下:

成員型別

成員型別定義
key_type
Key
value_typeKey
size_type無符號整數型別(通常是 std::size_t
difference_type有符號整數型別(通常是 std::ptrdiff_t
key_compareCompare
value_compareCompare
allocator_typeAllocator
referencevalue_type&
const_referenceconst value_type&
pointerstd::allocator_traits<Allocator>::pointer
const_pointerstd::allocator_traits
<Allocator>::const_pointer
iterator雙向迭代器 (Constant BidirectionalIterator)
const_iterator雙向迭代器
reverse_iteratorstd::reverse_iterator<iterator>
const_reverse_iteratorstd::reverse_iterator<const_iterator>

成員函式

成員函式作用
(建構函式)構造 set
(解構函式)析構 set
operator=賦值給容器 
get_allocator返回相關的分配器 

1、迭代器

begin()
cbegin()
返回指向容器第一個元素的迭代器
end()
cend()
返回指向容器尾端的迭代器
rbegin()
crbegin()
返回一個指向容器最後一個元素的反向迭代器
rend()
crend()
返回一個指向容器前端的反向迭代器 

2、容量

empty()檢查容器是否為空,元素數為0時返回true,否則返回false
size()返回容納的元素數
max_size()返回可容納的最大元素數

3、修改器

clear()清除內容
insert(const value_type& value )insert( value_type&& value )insert( const_iterator hint, const value_type& value )insert( const_iterator hint, value_type&& value )insert( InputIt first, InputIt last )insert(std::initializer_list<value_type> ilist )
插入元素 
emplace( Args&&... args)將引數 args...轉發給建構函式並插入生成元素
emplace_hint( const_iterator hint, Args&&... args)
原位構造元素,插入新元素到容器中儘可能接近於恰在 hint 前的位置
erase( const_iterator pos )erase( const_iterator first, const_iterator last )erase(const key_type& key )
擦除元素或一段序列
swap( set& other )交換內容
extract( const_iterator position )extract(const key_type& x )     (C++17起)
從另一容器釋出結點
merge(std::set<Key, C2, Allocator>& source)merge(std::set<Key, C2, Allocator>&& source)merge(std::multiset<Key, C2, Allocator>& source)merge(std::multiset<Key, C2, Allocator>&& source)(C++17起)
從另一容器接合結點

4、查詢

count(

相關推薦

C++ 標準模板STLset用法介紹

本文所介紹的std::set用法基於C++11,std::set定義於標頭檔案<set>中,其定義如下:template<     class Key,     class Compare = std::less<Key>,     class

C++ 標準模板STLvector用法介紹

本文所介紹的std::vector用法基於C++11,std::vector定義於標頭檔案<vector>中,其定義如下:template< class T, class Allocator = std::allocator<T>

C++ 標準模板STL set 使用方法與應用介紹(一)

這次先看例子程式: #include <iostream> #include <set> #include <algorithm> #include <iterator> using namespace std; int

c++ 標準模板 STL 演算法之 for_each 函式的使用用法詳解

std::for_each template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Functi

C++標準模板STL

STL 標準模板庫   包括容器,演算法,迭代器  容器用來儲存資料,比如vector,list,堆疊等,string也算;一共有八個 演算法就是對容器進行操作,比如增刪改查資料 迭代器用來遍歷容器itreator 用指標的方式來遍歷容器的資料 注:平時

C++標準模板(STL):vector、deque和list

之所以把這幾個容器寫在一起,是因為他們都是序列式容器。 序列式容器以線性序列的方式儲存元素(線性結構)。它沒有對元素進行排序,元素的順序和儲存它們的順序相同。以下有幾種標準的序列容器,每種容器都具有不同的特性: vector<T>(向量容器)是一個長度可變的

C++標準模板(STL):常用演算法

find()      ---algorithm中的函式 find(start,end,value) start搜尋的起點,end搜尋的終點,要尋找的value值 容器的表示方法(只有vector沒有內建find()函式,其他容器都有,其他容器用自己的find()

C++標準模板(STL)迭代器的原理與實現

引言 迭代器(iterator)是一種抽象的設計理念,通過迭代器可以在不瞭解容器內部原理的情況下遍歷容器。除此之外,STL中迭代器一個最重要的作用就是作為容器(vector,list等)與STL演算法的粘結劑,只要容器提供迭代器的介面,同一套演算法程式碼可以利

C++標準模板--STL簡介

STL(標準模板庫) 1.概念:STL是一種容器,用來管理一組資料 2.STL提供了兩種型別的容器 序列式容器(可序群集):其中每個元素都有固定的位置,元素的位置取決於進入容器的時機或地點(vector、deque、list) 關係式容器(已序群集):元素的位置取決於特定

C++ 標準模板STL multimap 使用方法與應用介紹

C++ Multimaps和maps很相似,但是MultiMaps允許重複的元素。(具體用法請參考map容器) 函式列表: begin() 返回指向第一個元素的迭代器  clear() 刪除所有元素

關於C++標準模板(STL)的一些基本使用

vector vector可以理解成變長陣列,即長度根據需要而自動改變的陣列 標頭檔案:#include <vector> 定義:vector<typename>name; vector內可以通過下標或者迭代器(iterator)訪問(只有vector和string才

C++:標準模板(STL)

介紹STL(standard template library)標準模板庫,是一種高效的C++程式庫。STL分為三類:container(容器),iterator(迭代器)和algorithm(演算法)。容器(container)容器是用來管理某一類物件的集合,包括序列式容器

C++標準模板STL簡介

  1. C/C++與STL 1.1. 什麼是STL?    STL -- 資料結構和演算法的分離,模板(GP);    STL的一個重要特點是資料結構和演算法的分離。儘管這是個簡單的概念,但這種分離確實使得STL變得非常通用。例如,由於STL的sort()函式是完全通用的

C++筆記(6):標準模板STL:容器、叠代器和算法

strong 並且 pty 優先級隊列 決定 image left sig 樹結構 STL(Standard Template Library)是C++標準庫的一部分。STL的代碼從廣義上講分為三類:容器、叠代器和算法。 1.容器 2.叠代器 3.算法 ---------

C++ 標準模板介紹STL

dha 組件 queue 實驗 sstream 基本 自己 regex 程序 1. STL 基本介紹 C++ STL(標準模板庫)是惠普實驗室開發的一系列軟件的統稱,是一套功能強大的 C++ 模板類。STL的目的是為了標準化組件,這樣就不用重新開發,讓後來者可以使用現成的組

【演算法筆記】第六章:C++標準模板STL介紹

【演算法筆記】第六章:C++標準模板庫(STL)介紹 標籤(空格分隔):【演算法筆記】 第六章:C++標準模板庫(STL)介紹 第六章:C++標準模板庫(STL)介紹 6.1 vector的常見用法詳解

C++標準模板STL)的簡單知識點

一.STL簡介 1.簡介 STL<標準模板庫>是通用類模板和演算法的集合,他提供給程式設計師一些標準的資料結構的實現。 2.三類資料結構  1.順序性容器 vector 從後面快速的插入與刪除,直接訪問任何元素 deque 從前面或後面快速的插入與刪除

C++標準模板STL)的學習

一、向量(vector) 1.所在標頭檔案:#include<vector> 2.本質:對陣列的封裝。 3.特點:讀取能在常數時間完成且大小可根據需要去改變。 4.初始化: 初始化舉例: vector<int> ivec1; vecto

C++筆記——標準模板STL

將演算法從特定的資料結構中抽象出來。 STL是泛型程式設計的一個範例,由一些可適應不同需求的集合類以及在這些資料集合上操作的演算法構成。 STL元件: 容器container:管理某類物件的集合。 迭代器iterator:在物件集合上進行遍歷。 演算法algorithms:

C++系列(標準模板STL

C++標準模板庫,簡稱為STL:Standard Template Lib。關於STL涉及的部分比較多,我們這裡只選具有代表性和最常用的部分給大家進行分享。 vector向量 vector的本質就是:對陣列的封裝。大家可以將其看作是一個數組,只不過對於vector這個