使用set或multiset之前,必須加入標頭檔案
set、multiset都是集合類,差別在與set中不允許有重複元素,multiset中允許有重複元素。
sets和multiset內部以平衡二叉樹實現
set c:建立空集合,不包含任何元素
set c(op):以op為排序準則,產生乙個空的set
set c1(c2):複製c2中的元素到c1中
set c(const value_type *first, const value_type* last):複製[first, last)之間元素構成新集合
set c(const value_type *first, const value_type* last,op):以op為排序準則,
複製[first, last)之間元素構成新集合。
c.~set()銷毀所有元素,釋放記憶體
multiset mc:建立空集合,不包含任何元素
multiset mc(op):以op為排序準則,產生乙個空的set
multiset c1(c2):複製c2中的元素到c1中
multiset c(const value_type *first, const value_type* last):複製[first, last)之間元素構成新集合
multiset c(const value_type *first, const value_type* last,op):以op為排序準則,
複製[first, last)之間元素構成新集合。
c.~set()銷毀所有元素,釋放記憶體
[cpp]view plain
copy
// constructing sets
#include
#include
bool
fncomp (
intlhs,
intrhs) ;
intmain ()
; std::set
> second (myints,myints+5);
// range
std::set
> third (second);
// a copy of second
std::set
> fourth (second.begin(), second.end());
// iterator ctor.
std::set
,classcomp> fifth;
// class as compare
bool
(*fn_pt)(
int,
int) = fncomp;
std::set
,bool
(*)(
int,
int)> sixth (fn_pt);
// function pointer as compare
return
0;
}
int size() const:返回容器元素個數
bool empty() const:判斷容器是否為空,若返回true,表明容器已空
pairinsert( x):插入元素x
iterator insert(iterator it,x):在迭代器it處插入元素x
void insert(const value_type *first,const value_type *last):插入[first, last)之間元素
iterator erase(iterator it):刪除迭代器指標it處元素
iterator erase(iterator first,iterator last):刪除[first, last)之間元素
size_type erase(const key& key):刪除元素值等於key的元素
[cpp]view plain
copy
#include
#include
intmain ()
;
// 10 already in set, not inserted
myset.insert (myints,myints+3);
std::cout <
; for
(it=myset.begin(); it!=myset.end(); ++it)
std::cout <
<
std::cout <
; return
0;
}
[cpp]view plain
copy
#include
#include
intmain ()
iterator begin():返回首元素的迭代器指標
iterator end():返回尾元素的迭代器指標
reverse_iterator rbegin():返回尾元素的逆向迭代器指標
reverse_iterator rend():返回首元素前乙個位置的迭代器指標
[cpp]view plain
copy
#include
#include
intmain ()
; std::set
> myset (myints,myints+5);
std::cout <
; for
(std::set<
int>::iterator it=myset.begin(); it!=myset.end(); ++it)
std::cout <
<
std::cout <
; return
0;
}
const_iterator lower_bound(const key& key):返回容器中大於等於key的迭代器指標
const_iterator upper_bound(const key& key):返回容器中大於key的迭代器指標
int count(const key& key) const:返回容器中元素等於key的元素的個數
pairequal_range(const key& key) const:返回容器中元素值等於key的迭代指標[first, last)
const_iterator find(const key& key) const:查詢功能,返回元素值等於key的迭代器指標
void swap(set& s):交換集合元素
void swap(multiset& s):交換多集合元素
[cpp]view plain
copy
#include
#include
intmain ()
[cpp]view plain
copy
#include "stdafx.h"
#include
#include
using
namespace
std;
intmain ()
[cpp]view plain
copy
#include "stdafx.h"
#include
#include
using
namespace
std;
intmain ()
; set
> first (myints,myints+3);
// 10,12,75
set> second (myints+3,myints+6);
// 20,25,32
first.swap(second);
cout <
; for
(set<
int>::iterator it=first.begin(); it!=first.end(); ++it)
cout <
<
cout <
; cout <
; for
(set<
int>::iterator it=second.begin(); it!=second.end(); ++it)
cout <
<
cout <
; return
0;
}
STL之五 set multiset用法詳解
使用set或multiset之前,必須加入標頭檔案 set multiset都是集合類,差別在與set中不允許有重複元素,multiset中允許有重複元素。sets和multiset內部以平衡二叉樹實現 set c 建立空集合,不包含任何元素 set c op 以op為排序準則,產生乙個空的set ...
STL之五 set multiset用法詳解
使用set或multiset之前,必須加入標頭檔案 set multiset都是集合類,差別在與set中不允許有重複元素,multiset中允許有重複元素。sets和multiset內部以平衡二叉樹實現 set c 建立空集合,不包含任何元素 set c op 以op為排序準則,產生乙個空的set ...
STL之五 set multiset用法詳解
使用set或multiset之前,必須加入標頭檔案 set multiset都是集合類,差別在與set中不允許有重複元素,multiset中允許有重複元素。sets和multiset內部以平衡二叉樹實現 set c 建立空集合,不包含任何元素 set c op 以op為排序準則,產生乙個空的set ...